diff --git a/docs/404.html b/docs/404.html index 29b84d8cc..fd89d72c4 100644 --- a/docs/404.html +++ b/docs/404.html @@ -20,13 +20,13 @@ - + -

404

There's nothing here.
+ - + diff --git a/docs/404.html.gz b/docs/404.html.gz index dcb36b30e..c1351f73a 100644 Binary files a/docs/404.html.gz and b/docs/404.html.gz differ diff --git a/docs/assets/js/10.1e8a986f.js.gz b/docs/assets/js/10.1e8a986f.js.gz deleted file mode 100644 index 917c64616..000000000 Binary files a/docs/assets/js/10.1e8a986f.js.gz and /dev/null differ diff --git a/docs/assets/js/10.1e8a986f.js b/docs/assets/js/10.cf659c31.js similarity index 90% rename from docs/assets/js/10.1e8a986f.js rename to docs/assets/js/10.cf659c31.js index 0ef227a11..c064fb961 100644 --- a/docs/assets/js/10.1e8a986f.js +++ b/docs/assets/js/10.cf659c31.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{434:function(e,t,r){e.exports=r.p+"assets/img/one-entry-per-language.de14fadd.png"},446:function(e,t,r){e.exports=r.p+"assets/img/relationship-types.b24659e3.png"},503:function(e,t,r){e.exports=r.p+"assets/img/competency-configuration.35bf84a0.png"},504:function(e,t,r){e.exports=r.p+"assets/img/add-custom-property.acf0adff.png"},505:function(e,t,r){e.exports=r.p+"assets/img/new-competency-property.f69f0bee.png"},506:function(e,t,r){e.exports=r.p+"assets/img/limit-values-competency.a02a44f8.png"},507:function(e,t,r){e.exports=r.p+"assets/img/limit-values-enabled-competency.a16a768c.png"},508:function(e,t,r){e.exports=r.p+"assets/img/limit-concepts.f9c070d5.png"},509:function(e,t,r){e.exports=r.p+"assets/img/limit-by-type.bec9c441.png"},510:function(e,t,r){e.exports=r.p+"assets/img/competency-limited-by-type.e0f0135c.png"},511:function(e,t,r){e.exports=r.p+"assets/img/competency-properties.ac3e4c6c.png"},512:function(e,t,r){e.exports=r.p+"assets/img/restrict-competency-types.b998c4dd.png"},513:function(e,t,r){e.exports=r.p+"assets/img/permitted-values.f4ebf7f0.png"},514:function(e,t,r){e.exports=r.p+"assets/img/allow-levels.4ccdf171.png"},515:function(e,t,r){e.exports=r.p+"assets/img/restrict-levels.1208a441.png"},516:function(e,t,r){e.exports=r.p+"assets/img/enforced-levels.b2bed16e.png"},517:function(e,t,r){e.exports=r.p+"assets/img/add-level.becb6305.png"},518:function(e,t,r){e.exports=r.p+"assets/img/add-new-level.80367258.png"},519:function(e,t,r){e.exports=r.p+"assets/img/apply-selected.ff45ebb9.png"},520:function(e,t,r){e.exports=r.p+"assets/img/competency-relationships-configuration.7fd522bf.png"},521:function(e,t,r){e.exports=r.p+"assets/img/display-options.f8802fa1.png"},522:function(e,t,r){e.exports=r.p+"assets/img/relationship-types-enabled.61c04858.png"},523:function(e,t,r){e.exports=r.p+"assets/img/manage-relationships.bcd93eed.png"},524:function(e,t,r){e.exports=r.p+"assets/img/resource-alignment-configuration.b8d0b7ed.png"},655:function(e,t,r){"use strict";r.r(t);var s=r(69),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"competency-property-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#competency-property-configuration"}},[e._v("#")]),e._v(" Competency Property Configuration")]),e._v(" "),t("p",[e._v("Competency properties are the values that can be added, edited, and deleted for competency objects. Default competency properties are "),t("em",[t("strong",[e._v("id, name, description,")])]),e._v(" and "),t("em",[t("strong",[e._v("type")])]),e._v(". Properties added here will be displayed when editing competency level objects in the framework editor.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(503),alt:"Competency Configuration"}})]),e._v(" "),t("h2",{attrs:{id:"property-fields"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#property-fields"}},[e._v("#")]),e._v(" Property Fields")]),e._v(" "),t("p",[e._v("Certain property fields can be modified directly from the property list:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - label to be displayed in form inputs for that property")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("description")])]),e._v(" - description of this property")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("display category")])]),e._v(" - category (if any) under which the property is displayed in form inputs")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("required")])]),e._v(" - property required toggle")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("display priority")])]),e._v(" - priority in which the property is displayed in form inputs\n"),t("ul",[t("li",[t("em",[e._v("primary, secondary, or tertiary")])])])])]),e._v(" "),t("p",[e._v("At the competency level the following static rules apply:")]),e._v(" "),t("ul",[t("li",[e._v("The "),t("em",[t("strong",[e._v("id")])]),e._v(" property is "),t("em",[e._v("required")])]),e._v(" "),t("li",[e._v("The "),t("em",[t("strong",[e._v("name")])]),e._v(" property is "),t("em",[e._v("required")]),e._v(" and has a display priority of "),t("em",[e._v("primary")])])]),e._v(" "),t("h2",{attrs:{id:"custom-competency-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#custom-competency-properties"}},[e._v("#")]),e._v(" Custom Competency Properties")]),e._v(" "),t("p",[e._v("Custom properties can be added to a competency by clicking the "),t("em",[t("strong",[e._v("add custom competency property")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(504),alt:"Add Custom Competency Property"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("New Competency Property")])]),e._v(" dialogue window is displayed.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(505),alt:"New Competency Property"}})]),e._v(" "),t("h3",{attrs:{id:"custom-competency-property-fields"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#custom-competency-property-fields"}},[e._v("#")]),e._v(" Custom Competency Property Fields")]),e._v(" "),t("p",[e._v("Several fields must be completed in order to add the new property. Some field options (such as "),t("em",[t("strong",[e._v("range/type: Text")])]),e._v(") allow further customization of the property.")]),e._v(" "),t("h3",{attrs:{id:"context"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Only editable at the time of property creation.")])]),e._v(" "),t("p",[e._v("Custom properties in CaSS are stored as namespaced linked JSON-LD records. Because of this, all new properties must have a context. By default, all custom properties have the "),t("strong",[e._v("CaSS v4.0")]),e._v(" "),t("a",{attrs:{href:"https://schema.cassproject.org/0.4/",target:"_blank",rel:"noopener noreferrer"}},[e._v("[schema]"),t("OutboundLink")],1),e._v(" context. However, it is also possible to modify this field to the following values:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CTDL-ASN")]),e._v(" - "),t("a",{attrs:{href:"https://purl.org/ctdlasn/terms/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://purl.org/ctdlasn/terms/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("RDF Semantic Web Standards 1999")]),e._v(" - "),t("a",{attrs:{href:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/1999/02/22-rdf-syntax-ns#"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("RDF Semantic Web Standards 2000")]),e._v(" - "),t("a",{attrs:{href:"http://www.w3.org/2000/01/rdf-schema#",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2000/01/rdf-schema#"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Key Based Authorization and Control")]),e._v(" - "),t("a",{attrs:{href:"https://schema.cassproject.org/kbac/0.4/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://schema.cassproject.org/kbac/0.4/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Eduworks v3.0")]),e._v(" - "),t("a",{attrs:{href:"http://schema.eduworks.com/general/0.3/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.eduworks.com/general/0.3/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Schema.org")]),e._v(" - "),t("a",{attrs:{href:"http://schema.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.org/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Achievements Standard Network")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/ASN/schema/core/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/ASN/schema/core/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("DCMI Elements v1.1")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/dc/elements/1.1/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/dc/elements/1.1/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("DCMI Terms")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/dc/terms/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/dc/terms/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Gem v2.0")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/gem/qualifiers/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/gem/qualifiers/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Relators Scheme")]),e._v(" - "),t("a",{attrs:{href:"http://www.loc.gov/loc.terms/relators/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.loc.gov/loc.terms/relators/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Simple Knowledge Organization System")]),e._v(" - "),t("a",{attrs:{href:"http://www.w3.org/2004/02/skos/core#",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2004/02/skos/core#"),t("OutboundLink")],1)])]),e._v(" "),t("p",[e._v("It is highly recommended to accept the default for this field unless there is an actionable reason for not doing so.")]),e._v(" "),t("h3",{attrs:{id:"range-type"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#range-type"}},[e._v("#")]),e._v(" Range/Type")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only editable at the time of property creation.")])]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("range/type")])]),e._v(" field defines the property type. Certain "),t("em",[e._v("range/types")]),e._v(" allow for further customization of the property. The following values are available for this field:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Lang-String")]),e._v(" - An RDF schema lang string as defined by "),t("a",{attrs:{href:"http://www.w3.org/2000/01/rdf-schema#langString",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2000/01/rdf-schema#langString"),t("OutboundLink")],1),e._v(".\n"),t("ul",[t("li",[e._v("Selecting this value opens the "),t("em",[e._v("One Entry Per Language")]),e._v(" property field")])])]),e._v(" "),t("li",[t("strong",[e._v("URL")]),e._v(" - A schema.org URL as defined by "),t("a",{attrs:{href:"http://schema.org/URL",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.org/URL"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Text")]),e._v(" - A schema.org Text (plain string) value as defined by "),t("a",{attrs:{href:"http://schema.org/Text",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.org/Text"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Selecting this value opens the "),t("em",[e._v("Limit Values")]),e._v(" property field")])])]),e._v(" "),t("li",[t("strong",[e._v("Date-Time")]),e._v(" - A w3.org dateTime value as defined by "),t("a",{attrs:{href:"http://www.w3.org/2001/XMLSchema#dateTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2001/XMLSchema#dateTime"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Date")]),e._v(" - A dublin core date value as defined by "),t("a",{attrs:{href:"http://purl.org/dc/terms/date",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/dc/terms/date"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("SKOS Concept")]),e._v(" - A CaSS concept value as defined by "),t("a",{attrs:{href:"https://schema.cassproject.org/0.4/skos/Concept",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://schema.cassproject.org/0.4/skos/Concept"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Competency")]),e._v(" - A CaSS competency ID")])]),e._v(" "),t("h3",{attrs:{id:"display-priority"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#display-priority"}},[e._v("#")]),e._v(" Display Priority")]),e._v(" "),t("p",[e._v("The priority in which the property is displayed in form inputs ("),t("em",[e._v("primary, secondary, or tertiary")]),e._v(").")]),e._v(" "),t("h3",{attrs:{id:"required"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#required"}},[e._v("#")]),e._v(" Required")]),e._v(" "),t("p",[e._v("The property is required toggle.")]),e._v(" "),t("h3",{attrs:{id:"unique-property-identifier"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#unique-property-identifier"}},[e._v("#")]),e._v(" Unique Property Identifier")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only editable at the time of property creation.")])]),e._v(" "),t("p",[e._v("The alphanumeric name of the property in the data record.")]),e._v(" "),t("h3",{attrs:{id:"display-label"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#display-label"}},[e._v("#")]),e._v(" Display Label")]),e._v(" "),t("p",[e._v("The label to be displayed in form inputs for the property.")]),e._v(" "),t("h3",{attrs:{id:"description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[e._v("#")]),e._v(" Description")]),e._v(" "),t("p",[e._v("The description of the property.")]),e._v(" "),t("h3",{attrs:{id:"display-category"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#display-category"}},[e._v("#")]),e._v(" Display Category")]),e._v(" "),t("p",[e._v("The category (if any) under which the property is displayed in form inputs.")]),e._v(" "),t("h3",{attrs:{id:"one-entry-per-language"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-entry-per-language"}},[e._v("#")]),e._v(" One Entry Per Language")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=Lang-String")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(434),alt:"One Entry Per Language"}})]),e._v(" "),t("p",[e._v("By toggling this field on, custom properties of the "),t("em",[t("strong",[e._v("range/type Lang-String")])]),e._v(" can be limited so that only a single entry can be made per language chosen.")]),e._v(" "),t("h3",{attrs:{id:"limit-values"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limit-values"}},[e._v("#")]),e._v(" Limit Values")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=Text")])])])]),e._v(" "),t("p",[e._v("When creating a custom property of "),t("em",[t("strong",[e._v("range/type Text")])]),e._v(", you can limit the values allowed to the property. To do this, toggle the "),t("em",[t("strong",[e._v("Limit Values")])]),e._v(" field on and click the "),t("em",[t("strong",[e._v("add")])]),e._v(" button to begin managing the list of allowable values.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(506),alt:"Limit Values"}})]),e._v(" "),t("p",[e._v("For each entry in the limit values table, a "),t("em",[t("strong",[e._v("display label")])]),e._v(" and "),t("em",[t("strong",[e._v("field value")])]),e._v(" must be entered.")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - the label displayed to the user when selecting the value")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("field value")])]),e._v(" - the recorded value when the value is selected by the user\n"),t("ul",[t("li",[e._v("Only alphanumerics are allowed for field values")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(507),alt:"Limit Values Enabled"}})]),e._v(" "),t("h3",{attrs:{id:"limit-concepts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limit-concepts"}},[e._v("#")]),e._v(" Limit Concepts")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=SKOS Concept")])])])]),e._v(" "),t("p",[e._v("When creating a custom property of "),t("em",[t("strong",[e._v("range/type SKOS Concept")])]),e._v(", you can limit the concepts to apply to the property. To do this, toggle the "),t("em",[t("strong",[e._v("Limit Concepts")])]),e._v(" field on and begin typing in the search box. A dropdown list will contain existing Concept Schemes or Taxonomies that match your search. Select one or more of the Concept Schemes or Taxonomies. Each selected item will appear above the search box and can be removed again if desired.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(508),alt:"Limit Concepts"}})]),e._v(" "),t("p",[e._v("When searching for a value to apply to a property of type SKOS Concept with limited concepts, only concepts defined within the Limit Concepts configuration will be available to select from.")]),e._v(" "),t("h3",{attrs:{id:"limit-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limit-types"}},[e._v("#")]),e._v(" Limit Types")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=Competency")])])])]),e._v(" "),t("p",[e._v("When creating a custom property of "),t("em",[t("strong",[e._v("range/type Competency")])]),e._v(", you can limit the available competencies to apply to the property. To do this, you must first have Competency Types defined in the configuration. [To add Competency Types, please refer to Restrict Competency Types (#restrict-competency-types). Toggle the "),t("em",[t("strong",[e._v("Limit By Type")])]),e._v(" field on and begin typing in the search box. A dropdown list will contain existing Competency Types that match your search. Select one or more of the Competency Types. Each selected Competency Type will appear above the search box and can be removed again if desired.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(509),alt:"Limit By Type"}})]),e._v(" "),t("p",[e._v("When searching for a value to apply to a property of type Competency, only values with the Competency Type defined in the Limit By Type configuration will be available in the search.")]),e._v(" "),t("p",[e._v('In the example below, "Critical Skill" is a property of type Competency. In the configuration, it is limited by type "Major". The two competencies listed in the search below, "Emergency Response Preparedness" and "Threat Awareness", both have the Competency Type of "Major" applied to them and therefore show up as options to apply to "Critical Skill".\nThe value of the "Critical Skill" property will be set to the id of the competency selected from the search.')]),e._v(" "),t("p",[t("img",{attrs:{src:r(510),alt:"Competency Limited By Type"}})]),e._v(" "),t("h2",{attrs:{id:"applying-the-custom-competency-property"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applying-the-custom-competency-property"}},[e._v("#")]),e._v(" Applying the Custom Competency Property")]),e._v(" "),t("p",[e._v("Once complete, the new property can be applied to the framework by clicking the "),t("em",[t("strong",[e._v("apply new property")])]),e._v(" in the lower right corner of the dialogue window.")]),e._v(" "),t("h2",{attrs:{id:"editing-deleting-custom-competency-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-deleting-custom-competency-properties"}},[e._v("#")]),e._v(" Editing/Deleting Custom Competency Properties")]),e._v(" "),t("p",[e._v("Custom properties can be edited and deleted by selecting the appropriate action buttons to the right of the corresponding property entry in the "),t("em",[t("strong",[e._v("Competency Properties")])]),e._v(" list.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(511),alt:"Delete Custom Properties"}})]),e._v(" "),t("h2",{attrs:{id:"restrict-competency-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#restrict-competency-types"}},[e._v("#")]),e._v(" Restrict Competency Types")]),e._v(" "),t("p",[e._v("By default, values for the competency "),t("em",[t("strong",[e._v("type")])]),e._v(" property are not limited. By toggling this setting, competency types can be restricted to a list of predetermined values.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(512),alt:"Restrict Competency Types"}})]),e._v(" "),t("p",[e._v("For each entry in the permitted values table, a "),t("em",[t("strong",[e._v("display label")])]),e._v(" and "),t("em",[t("strong",[e._v("field value")])]),e._v(" must be entered.")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - the label displayed to the user when selecting the type value")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("field value")])]),e._v(" - the recorded value when the type is selected by the user\n"),t("ul",[t("li",[e._v("Only alphanumerics are allowed for field values")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(513),alt:"Permitted Values Table"}})]),e._v(" "),t("h2",{attrs:{id:"competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#competency-levels"}},[e._v("#")]),e._v(" Competency Levels")]),e._v(" "),t("p",[e._v("By default, the level property is enabled for competency objects created in the CaSS Authoring Tool. Levels can be disabled by toggling the "),t("em",[t("strong",[e._v("allow levels")])]),e._v(" switch.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(514),alt:"Allow Levels"}})]),e._v(" "),t("h2",{attrs:{id:"level-property-fields"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#level-property-fields"}},[e._v("#")]),e._v(" Level Property Fields")]),e._v(" "),t("p",[e._v("Level property fields can be modified from the "),t("em",[t("strong",[e._v("allow levels")])]),e._v(" section of the competency configuration settings:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - label to be displayed in form inputs for levels")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("description")])]),e._v(" - description of the levels property")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("display category")])]),e._v(" - category (if any) under which levels are displayed in form inputs")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("level display priority")])]),e._v(" - priority in which levels are displayed in form inputs (primary, secondary, or tertiary)")])]),e._v(" "),t("h2",{attrs:{id:"restrict-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#restrict-competency-levels"}},[e._v("#")]),e._v(" Restrict Competency Levels")]),e._v(" "),t("p",[e._v("By default, levels in CaSS can be created during framework/competency editing. To restrict competencies that allow levels to a limited selection, toggle the "),t("em",[t("strong",[e._v("restrict level values")])]),e._v(" switch and click the "),t("em",[t("strong",[e._v("manage levels")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(515),alt:"Restrict Competency Levels"}})]),e._v(" "),t("h3",{attrs:{id:"manage-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manage-competency-levels"}},[e._v("#")]),e._v(" Manage Competency Levels")]),e._v(" "),t("p",[e._v("Clicking the "),t("em",[t("strong",[e._v("manage levels")])]),e._v(" button displays the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialogue screen. From here, you can select from all existing levels in CaSS or create more appropriate levels. Any previously selected levels will already be checked and can be removed from the enforced levels list by unchecking the appropriate item.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(516),alt:"Enforced Levels"}})]),e._v(" "),t("h3",{attrs:{id:"add-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-competency-levels"}},[e._v("#")]),e._v(" Add Competency Levels")]),e._v(" "),t("p",[e._v("To add a new level to the available level list, click on the "),t("em",[t("strong",[e._v("add level")])]),e._v(" button in the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialogue window.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(517),alt:"Add Levels"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("add new level")])]),e._v(" dialogue is open. Enter the new level's "),t("em",[t("strong",[e._v("name")])]),e._v(" (and optionally the new level's "),t("em",[t("strong",[e._v("description")])]),e._v(" ). Clicking the "),t("em",[t("strong",[e._v("save new level")])]),e._v(" button on the bottom right corner of the dialogue will create this level in CaSS and return you to the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialogue.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(518),alt:"Add New Level Modal"}})]),e._v(" "),t("h3",{attrs:{id:"apply-selected-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-selected-competency-levels"}},[e._v("#")]),e._v(" Apply Selected Competency Levels")]),e._v(" "),t("p",[e._v("Upon selecting the desired enforced levels, click the "),t("em",[t("strong",[e._v("apply selected")])]),e._v(" button at the bottom right of the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialog window to apply the enforced levels to competencies.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(519),alt:"Select Enforced Levels"}})]),e._v(" "),t("h2",{attrs:{id:"competency-relationships-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#competency-relationships-configuration"}},[e._v("#")]),e._v(" Competency Relationships Configuration")]),e._v(" "),t("p",[e._v("Relationships can be added as properties on competencies to define how competencies within a framework relate to each other. Enabled relationships will be available in the property drop down when editing competencies in the framework editor.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(520),alt:"Competnecy Relationship Configuration"}})]),e._v(" "),t("h3",{attrs:{id:"relationship-display-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#relationship-display-options"}},[e._v("#")]),e._v(" Relationship Display Options")]),e._v(" "),t("p",[e._v("General relationship display options can be configured from the "),t("em",[t("strong",[e._v("display options section")])]),e._v(". These include:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display category")])]),e._v(" - category (if any) under which relationships are displayed in form inputs")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("relationships display priority")])]),e._v(" - priority in which relationships are displayed in form inputs ("),t("em",[e._v("primary, secondary, or tertiary")]),e._v(")")])]),e._v(" "),t("p",[t("img",{attrs:{src:r(521),alt:"Relationship Display Options"}})]),e._v(" "),t("h3",{attrs:{id:"relationship-type-management"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#relationship-type-management"}},[e._v("#")]),e._v(" Relationship Type Management")]),e._v(" "),t("p",[e._v("The types of relationships available to competencies using the configuration can be managed under the "),t("em",[t("strong",[e._v("relationship types")])]),e._v(" section. Relationship types can be "),t("em",[e._v("enabled, disabled,")]),e._v(" and "),t("em",[e._v("relabeled")]),e._v(".")]),e._v(" "),t("p",[e._v("By default, the following relationship types are enabled:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("isEnabledBy")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("requires")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("desires")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("narrows")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("isRelatedTo")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("isEquivalentTo")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(446),alt:"Relationship Types Management"}})]),e._v(" "),t("p",[e._v("To reduce screen clutter, the "),t("em",[t("strong",[e._v("relationship types")])]),e._v(" section only displays "),t("em",[e._v("enabled")]),e._v(" relationship types. Currently, enabled relationships can be disabled using the corresponding "),t("em",[t("strong",[e._v("enabled")])]),e._v(" switch to the right of the relationship entry.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(522),alt:"Relationship Types Enabled Toggle"}})]),e._v(" "),t("p",[e._v("To add other relationship types to a configuration, click on the "),t("em",[t("strong",[e._v("manage relationships")])]),e._v(" button on the upper right of the "),t("em",[t("strong",[e._v("relationship types")])]),e._v(" section.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(523),alt:"Manage Relationships"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("manage relationship types")])]),e._v(" dialogue window is open. From this screen, all relationships type currently available in CaSS are categorized and displayed.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(446),alt:"Manage Relationship Types"}})]),e._v(" "),t("p",[e._v("The available relationship types are as follows:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CaSS Default Relationships")]),e._v(" "),t("ul",[t("li",[e._v("isEnabledBy")]),e._v(" "),t("li",[e._v("requires")]),e._v(" "),t("li",[e._v("desires")]),e._v(" "),t("li",[e._v("narrows")]),e._v(" "),t("li",[e._v("isRelatedTo")]),e._v(" "),t("li",[e._v("isEquivalentTo")]),e._v(" "),t("li",[e._v("broadens")]),e._v(" "),t("li",[e._v("enables")])])]),e._v(" "),t("li",[t("strong",[e._v("Achievement Standards Network Relationships")]),e._v(" "),t("ul",[t("li",[e._v("majorRelated")]),e._v(" "),t("li",[e._v("minorRelated")])])]),e._v(" "),t("li",[t("strong",[e._v("GEMQ")]),e._v(" "),t("ul",[t("li",[e._v("hasChild")]),e._v(" "),t("li",[e._v("isChildOf")])])]),e._v(" "),t("li",[t("strong",[e._v("Other")]),e._v(" "),t("ul",[t("li",[e._v("isSimilarTo")]),e._v(" "),t("li",[e._v("isPartiallySameAs")])])])]),e._v(" "),t("p",[e._v("To enable or disable a relationship type for the configuration, toggle the "),t("em",[t("strong",[e._v("enabled")])]),e._v(" switch to the right of the corresponding type and click the "),t("em",[t("strong",[e._v("ok")])]),e._v(" button.")]),e._v(" "),t("h2",{attrs:{id:"resource-alignment-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#resource-alignment-configuration"}},[e._v("#")]),e._v(" Resource Alignment Configuration")]),e._v(" "),t("p",[e._v("Resource alignment terms are used to map resources such as learning material, courses, and other content to competencies in CAT. If enabled, the alignment type property will show up in the framework editor when aligning competencies to resources.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(524),alt:"Resource Alignemnt Configuration"}})]),e._v(" "),t("p",[e._v("Currently, the CaSS Authoring Tool supports four types of resource alignments:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("teaches")]),e._v(" - The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term")]),e._v(" "),t("li",[t("strong",[e._v("assesses")]),e._v(" - The learning resource being described may be used to assess the competency being referenced")]),e._v(" "),t("li",[t("strong",[e._v("requires")]),e._v(" - The competency being referenced is required in order for effective outcome of the learning resource being described")]),e._v(" "),t("li",[t("strong",[e._v("desires")]),e._v(" - Knowledge of the learning resource being described is desired by the competency being referenced")])]),e._v(" "),t("p",[e._v("Each alignment type can be enabled and disabled by toggling the "),t("em",[t("strong",[e._v("enabled")])]),e._v(" switch to the right of each corresponding item.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{434:function(e,t,r){e.exports=r.p+"assets/img/one-entry-per-language.de14fadd.png"},446:function(e,t,r){e.exports=r.p+"assets/img/relationship-types.b24659e3.png"},505:function(e,t,r){e.exports=r.p+"assets/img/competency-configuration.35bf84a0.png"},506:function(e,t,r){e.exports=r.p+"assets/img/add-custom-property.acf0adff.png"},507:function(e,t,r){e.exports=r.p+"assets/img/new-competency-property.f69f0bee.png"},508:function(e,t,r){e.exports=r.p+"assets/img/limit-values-competency.a02a44f8.png"},509:function(e,t,r){e.exports=r.p+"assets/img/limit-values-enabled-competency.a16a768c.png"},510:function(e,t,r){e.exports=r.p+"assets/img/limit-concepts.f9c070d5.png"},511:function(e,t,r){e.exports=r.p+"assets/img/limit-by-type.bec9c441.png"},512:function(e,t,r){e.exports=r.p+"assets/img/competency-limited-by-type.e0f0135c.png"},513:function(e,t,r){e.exports=r.p+"assets/img/competency-properties.ac3e4c6c.png"},514:function(e,t,r){e.exports=r.p+"assets/img/restrict-competency-types.b998c4dd.png"},515:function(e,t,r){e.exports=r.p+"assets/img/permitted-values.f4ebf7f0.png"},516:function(e,t,r){e.exports=r.p+"assets/img/allow-levels.4ccdf171.png"},517:function(e,t,r){e.exports=r.p+"assets/img/restrict-levels.1208a441.png"},518:function(e,t,r){e.exports=r.p+"assets/img/enforced-levels.b2bed16e.png"},519:function(e,t,r){e.exports=r.p+"assets/img/add-level.becb6305.png"},520:function(e,t,r){e.exports=r.p+"assets/img/add-new-level.80367258.png"},521:function(e,t,r){e.exports=r.p+"assets/img/apply-selected.ff45ebb9.png"},522:function(e,t,r){e.exports=r.p+"assets/img/competency-relationships-configuration.7fd522bf.png"},523:function(e,t,r){e.exports=r.p+"assets/img/display-options.f8802fa1.png"},524:function(e,t,r){e.exports=r.p+"assets/img/relationship-types-enabled.61c04858.png"},525:function(e,t,r){e.exports=r.p+"assets/img/manage-relationships.bcd93eed.png"},526:function(e,t,r){e.exports=r.p+"assets/img/resource-alignment-configuration.b8d0b7ed.png"},656:function(e,t,r){"use strict";r.r(t);var s=r(69),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"competency-property-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#competency-property-configuration"}},[e._v("#")]),e._v(" Competency Property Configuration")]),e._v(" "),t("p",[e._v("Competency properties are the values that can be added, edited, and deleted for competency objects. Default competency properties are "),t("em",[t("strong",[e._v("id, name, description,")])]),e._v(" and "),t("em",[t("strong",[e._v("type")])]),e._v(". Properties added here will be displayed when editing competency level objects in the framework editor.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(505),alt:"Competency Configuration"}})]),e._v(" "),t("h2",{attrs:{id:"property-fields"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#property-fields"}},[e._v("#")]),e._v(" Property Fields")]),e._v(" "),t("p",[e._v("Certain property fields can be modified directly from the property list:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - label to be displayed in form inputs for that property")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("description")])]),e._v(" - description of this property")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("display category")])]),e._v(" - category (if any) under which the property is displayed in form inputs")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("required")])]),e._v(" - property required toggle")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("display priority")])]),e._v(" - priority in which the property is displayed in form inputs\n"),t("ul",[t("li",[t("em",[e._v("primary, secondary, or tertiary")])])])])]),e._v(" "),t("p",[e._v("At the competency level the following static rules apply:")]),e._v(" "),t("ul",[t("li",[e._v("The "),t("em",[t("strong",[e._v("id")])]),e._v(" property is "),t("em",[e._v("required")])]),e._v(" "),t("li",[e._v("The "),t("em",[t("strong",[e._v("name")])]),e._v(" property is "),t("em",[e._v("required")]),e._v(" and has a display priority of "),t("em",[e._v("primary")])])]),e._v(" "),t("h2",{attrs:{id:"custom-competency-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#custom-competency-properties"}},[e._v("#")]),e._v(" Custom Competency Properties")]),e._v(" "),t("p",[e._v("Custom properties can be added to a competency by clicking the "),t("em",[t("strong",[e._v("add custom competency property")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(506),alt:"Add Custom Competency Property"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("New Competency Property")])]),e._v(" dialogue window is displayed.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(507),alt:"New Competency Property"}})]),e._v(" "),t("h3",{attrs:{id:"custom-competency-property-fields"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#custom-competency-property-fields"}},[e._v("#")]),e._v(" Custom Competency Property Fields")]),e._v(" "),t("p",[e._v("Several fields must be completed in order to add the new property. Some field options (such as "),t("em",[t("strong",[e._v("range/type: Text")])]),e._v(") allow further customization of the property.")]),e._v(" "),t("h3",{attrs:{id:"context"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Only editable at the time of property creation.")])]),e._v(" "),t("p",[e._v("Custom properties in CaSS are stored as namespaced linked JSON-LD records. Because of this, all new properties must have a context. By default, all custom properties have the "),t("strong",[e._v("CaSS v4.0")]),e._v(" "),t("a",{attrs:{href:"https://schema.cassproject.org/0.4/",target:"_blank",rel:"noopener noreferrer"}},[e._v("[schema]"),t("OutboundLink")],1),e._v(" context. However, it is also possible to modify this field to the following values:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CTDL-ASN")]),e._v(" - "),t("a",{attrs:{href:"https://purl.org/ctdlasn/terms/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://purl.org/ctdlasn/terms/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("RDF Semantic Web Standards 1999")]),e._v(" - "),t("a",{attrs:{href:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/1999/02/22-rdf-syntax-ns#"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("RDF Semantic Web Standards 2000")]),e._v(" - "),t("a",{attrs:{href:"http://www.w3.org/2000/01/rdf-schema#",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2000/01/rdf-schema#"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Key Based Authorization and Control")]),e._v(" - "),t("a",{attrs:{href:"https://schema.cassproject.org/kbac/0.4/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://schema.cassproject.org/kbac/0.4/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Eduworks v3.0")]),e._v(" - "),t("a",{attrs:{href:"http://schema.eduworks.com/general/0.3/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.eduworks.com/general/0.3/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Schema.org")]),e._v(" - "),t("a",{attrs:{href:"http://schema.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.org/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Achievements Standard Network")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/ASN/schema/core/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/ASN/schema/core/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("DCMI Elements v1.1")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/dc/elements/1.1/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/dc/elements/1.1/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("DCMI Terms")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/dc/terms/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/dc/terms/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Gem v2.0")]),e._v(" - "),t("a",{attrs:{href:"http://purl.org/gem/qualifiers/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/gem/qualifiers/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Relators Scheme")]),e._v(" - "),t("a",{attrs:{href:"http://www.loc.gov/loc.terms/relators/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.loc.gov/loc.terms/relators/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Simple Knowledge Organization System")]),e._v(" - "),t("a",{attrs:{href:"http://www.w3.org/2004/02/skos/core#",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2004/02/skos/core#"),t("OutboundLink")],1)])]),e._v(" "),t("p",[e._v("It is highly recommended to accept the default for this field unless there is an actionable reason for not doing so.")]),e._v(" "),t("h3",{attrs:{id:"range-type"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#range-type"}},[e._v("#")]),e._v(" Range/Type")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only editable at the time of property creation.")])]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("range/type")])]),e._v(" field defines the property type. Certain "),t("em",[e._v("range/types")]),e._v(" allow for further customization of the property. The following values are available for this field:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Lang-String")]),e._v(" - An RDF schema lang string as defined by "),t("a",{attrs:{href:"http://www.w3.org/2000/01/rdf-schema#langString",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2000/01/rdf-schema#langString"),t("OutboundLink")],1),e._v(".\n"),t("ul",[t("li",[e._v("Selecting this value opens the "),t("em",[e._v("One Entry Per Language")]),e._v(" property field")])])]),e._v(" "),t("li",[t("strong",[e._v("URL")]),e._v(" - A schema.org URL as defined by "),t("a",{attrs:{href:"http://schema.org/URL",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.org/URL"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Text")]),e._v(" - A schema.org Text (plain string) value as defined by "),t("a",{attrs:{href:"http://schema.org/Text",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://schema.org/Text"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Selecting this value opens the "),t("em",[e._v("Limit Values")]),e._v(" property field")])])]),e._v(" "),t("li",[t("strong",[e._v("Date-Time")]),e._v(" - A w3.org dateTime value as defined by "),t("a",{attrs:{href:"http://www.w3.org/2001/XMLSchema#dateTime",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://www.w3.org/2001/XMLSchema#dateTime"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Date")]),e._v(" - A dublin core date value as defined by "),t("a",{attrs:{href:"http://purl.org/dc/terms/date",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://purl.org/dc/terms/date"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("SKOS Concept")]),e._v(" - A CaSS concept value as defined by "),t("a",{attrs:{href:"https://schema.cassproject.org/0.4/skos/Concept",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://schema.cassproject.org/0.4/skos/Concept"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("strong",[e._v("Competency")]),e._v(" - A CaSS competency ID")])]),e._v(" "),t("h3",{attrs:{id:"display-priority"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#display-priority"}},[e._v("#")]),e._v(" Display Priority")]),e._v(" "),t("p",[e._v("The priority in which the property is displayed in form inputs ("),t("em",[e._v("primary, secondary, or tertiary")]),e._v(").")]),e._v(" "),t("h3",{attrs:{id:"required"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#required"}},[e._v("#")]),e._v(" Required")]),e._v(" "),t("p",[e._v("The property is required toggle.")]),e._v(" "),t("h3",{attrs:{id:"unique-property-identifier"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#unique-property-identifier"}},[e._v("#")]),e._v(" Unique Property Identifier")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only editable at the time of property creation.")])]),e._v(" "),t("p",[e._v("The alphanumeric name of the property in the data record.")]),e._v(" "),t("h3",{attrs:{id:"display-label"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#display-label"}},[e._v("#")]),e._v(" Display Label")]),e._v(" "),t("p",[e._v("The label to be displayed in form inputs for the property.")]),e._v(" "),t("h3",{attrs:{id:"description"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#description"}},[e._v("#")]),e._v(" Description")]),e._v(" "),t("p",[e._v("The description of the property.")]),e._v(" "),t("h3",{attrs:{id:"display-category"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#display-category"}},[e._v("#")]),e._v(" Display Category")]),e._v(" "),t("p",[e._v("The category (if any) under which the property is displayed in form inputs.")]),e._v(" "),t("h3",{attrs:{id:"one-entry-per-language"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#one-entry-per-language"}},[e._v("#")]),e._v(" One Entry Per Language")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=Lang-String")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(434),alt:"One Entry Per Language"}})]),e._v(" "),t("p",[e._v("By toggling this field on, custom properties of the "),t("em",[t("strong",[e._v("range/type Lang-String")])]),e._v(" can be limited so that only a single entry can be made per language chosen.")]),e._v(" "),t("h3",{attrs:{id:"limit-values"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limit-values"}},[e._v("#")]),e._v(" Limit Values")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=Text")])])])]),e._v(" "),t("p",[e._v("When creating a custom property of "),t("em",[t("strong",[e._v("range/type Text")])]),e._v(", you can limit the values allowed to the property. To do this, toggle the "),t("em",[t("strong",[e._v("Limit Values")])]),e._v(" field on and click the "),t("em",[t("strong",[e._v("add")])]),e._v(" button to begin managing the list of allowable values.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(508),alt:"Limit Values"}})]),e._v(" "),t("p",[e._v("For each entry in the limit values table, a "),t("em",[t("strong",[e._v("display label")])]),e._v(" and "),t("em",[t("strong",[e._v("field value")])]),e._v(" must be entered.")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - the label displayed to the user when selecting the value")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("field value")])]),e._v(" - the recorded value when the value is selected by the user\n"),t("ul",[t("li",[e._v("Only alphanumerics are allowed for field values")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(509),alt:"Limit Values Enabled"}})]),e._v(" "),t("h3",{attrs:{id:"limit-concepts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limit-concepts"}},[e._v("#")]),e._v(" Limit Concepts")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=SKOS Concept")])])])]),e._v(" "),t("p",[e._v("When creating a custom property of "),t("em",[t("strong",[e._v("range/type SKOS Concept")])]),e._v(", you can limit the concepts to apply to the property. To do this, toggle the "),t("em",[t("strong",[e._v("Limit Concepts")])]),e._v(" field on and begin typing in the search box. A dropdown list will contain existing Concept Schemes or Taxonomies that match your search. Select one or more of the Concept Schemes or Taxonomies. Each selected item will appear above the search box and can be removed again if desired.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(510),alt:"Limit Concepts"}})]),e._v(" "),t("p",[e._v("When searching for a value to apply to a property of type SKOS Concept with limited concepts, only concepts defined within the Limit Concepts configuration will be available to select from.")]),e._v(" "),t("h3",{attrs:{id:"limit-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limit-types"}},[e._v("#")]),e._v(" Limit Types")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("This is only available for "),t("em",[t("strong",[e._v("range/type=Competency")])])])]),e._v(" "),t("p",[e._v("When creating a custom property of "),t("em",[t("strong",[e._v("range/type Competency")])]),e._v(", you can limit the available competencies to apply to the property. To do this, you must first have Competency Types defined in the configuration. [To add Competency Types, please refer to Restrict Competency Types (#restrict-competency-types). Toggle the "),t("em",[t("strong",[e._v("Limit By Type")])]),e._v(" field on and begin typing in the search box. A dropdown list will contain existing Competency Types that match your search. Select one or more of the Competency Types. Each selected Competency Type will appear above the search box and can be removed again if desired.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(511),alt:"Limit By Type"}})]),e._v(" "),t("p",[e._v("When searching for a value to apply to a property of type Competency, only values with the Competency Type defined in the Limit By Type configuration will be available in the search.")]),e._v(" "),t("p",[e._v('In the example below, "Critical Skill" is a property of type Competency. In the configuration, it is limited by type "Major". The two competencies listed in the search below, "Emergency Response Preparedness" and "Threat Awareness", both have the Competency Type of "Major" applied to them and therefore show up as options to apply to "Critical Skill".\nThe value of the "Critical Skill" property will be set to the id of the competency selected from the search.')]),e._v(" "),t("p",[t("img",{attrs:{src:r(512),alt:"Competency Limited By Type"}})]),e._v(" "),t("h2",{attrs:{id:"applying-the-custom-competency-property"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applying-the-custom-competency-property"}},[e._v("#")]),e._v(" Applying the Custom Competency Property")]),e._v(" "),t("p",[e._v("Once complete, the new property can be applied to the framework by clicking the "),t("em",[t("strong",[e._v("apply new property")])]),e._v(" in the lower right corner of the dialogue window.")]),e._v(" "),t("h2",{attrs:{id:"editing-deleting-custom-competency-properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-deleting-custom-competency-properties"}},[e._v("#")]),e._v(" Editing/Deleting Custom Competency Properties")]),e._v(" "),t("p",[e._v("Custom properties can be edited and deleted by selecting the appropriate action buttons to the right of the corresponding property entry in the "),t("em",[t("strong",[e._v("Competency Properties")])]),e._v(" list.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(513),alt:"Delete Custom Properties"}})]),e._v(" "),t("h2",{attrs:{id:"restrict-competency-types"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#restrict-competency-types"}},[e._v("#")]),e._v(" Restrict Competency Types")]),e._v(" "),t("p",[e._v("By default, values for the competency "),t("em",[t("strong",[e._v("type")])]),e._v(" property are not limited. By toggling this setting, competency types can be restricted to a list of predetermined values.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(514),alt:"Restrict Competency Types"}})]),e._v(" "),t("p",[e._v("For each entry in the permitted values table, a "),t("em",[t("strong",[e._v("display label")])]),e._v(" and "),t("em",[t("strong",[e._v("field value")])]),e._v(" must be entered.")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - the label displayed to the user when selecting the type value")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("field value")])]),e._v(" - the recorded value when the type is selected by the user\n"),t("ul",[t("li",[e._v("Only alphanumerics are allowed for field values")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(515),alt:"Permitted Values Table"}})]),e._v(" "),t("h2",{attrs:{id:"competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#competency-levels"}},[e._v("#")]),e._v(" Competency Levels")]),e._v(" "),t("p",[e._v("By default, the level property is enabled for competency objects created in the CaSS Authoring Tool. Levels can be disabled by toggling the "),t("em",[t("strong",[e._v("allow levels")])]),e._v(" switch.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(516),alt:"Allow Levels"}})]),e._v(" "),t("h2",{attrs:{id:"level-property-fields"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#level-property-fields"}},[e._v("#")]),e._v(" Level Property Fields")]),e._v(" "),t("p",[e._v("Level property fields can be modified from the "),t("em",[t("strong",[e._v("allow levels")])]),e._v(" section of the competency configuration settings:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display label")])]),e._v(" - label to be displayed in form inputs for levels")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("description")])]),e._v(" - description of the levels property")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("display category")])]),e._v(" - category (if any) under which levels are displayed in form inputs")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("level display priority")])]),e._v(" - priority in which levels are displayed in form inputs (primary, secondary, or tertiary)")])]),e._v(" "),t("h2",{attrs:{id:"restrict-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#restrict-competency-levels"}},[e._v("#")]),e._v(" Restrict Competency Levels")]),e._v(" "),t("p",[e._v("By default, levels in CaSS can be created during framework/competency editing. To restrict competencies that allow levels to a limited selection, toggle the "),t("em",[t("strong",[e._v("restrict level values")])]),e._v(" switch and click the "),t("em",[t("strong",[e._v("manage levels")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(517),alt:"Restrict Competency Levels"}})]),e._v(" "),t("h3",{attrs:{id:"manage-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manage-competency-levels"}},[e._v("#")]),e._v(" Manage Competency Levels")]),e._v(" "),t("p",[e._v("Clicking the "),t("em",[t("strong",[e._v("manage levels")])]),e._v(" button displays the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialogue screen. From here, you can select from all existing levels in CaSS or create more appropriate levels. Any previously selected levels will already be checked and can be removed from the enforced levels list by unchecking the appropriate item.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(518),alt:"Enforced Levels"}})]),e._v(" "),t("h3",{attrs:{id:"add-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#add-competency-levels"}},[e._v("#")]),e._v(" Add Competency Levels")]),e._v(" "),t("p",[e._v("To add a new level to the available level list, click on the "),t("em",[t("strong",[e._v("add level")])]),e._v(" button in the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialogue window.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(519),alt:"Add Levels"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("add new level")])]),e._v(" dialogue is open. Enter the new level's "),t("em",[t("strong",[e._v("name")])]),e._v(" (and optionally the new level's "),t("em",[t("strong",[e._v("description")])]),e._v(" ). Clicking the "),t("em",[t("strong",[e._v("save new level")])]),e._v(" button on the bottom right corner of the dialogue will create this level in CaSS and return you to the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialogue.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(520),alt:"Add New Level Modal"}})]),e._v(" "),t("h3",{attrs:{id:"apply-selected-competency-levels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-selected-competency-levels"}},[e._v("#")]),e._v(" Apply Selected Competency Levels")]),e._v(" "),t("p",[e._v("Upon selecting the desired enforced levels, click the "),t("em",[t("strong",[e._v("apply selected")])]),e._v(" button at the bottom right of the "),t("em",[t("strong",[e._v("select enforced levels")])]),e._v(" dialog window to apply the enforced levels to competencies.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(521),alt:"Select Enforced Levels"}})]),e._v(" "),t("h2",{attrs:{id:"competency-relationships-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#competency-relationships-configuration"}},[e._v("#")]),e._v(" Competency Relationships Configuration")]),e._v(" "),t("p",[e._v("Relationships can be added as properties on competencies to define how competencies within a framework relate to each other. Enabled relationships will be available in the property drop down when editing competencies in the framework editor.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(522),alt:"Competnecy Relationship Configuration"}})]),e._v(" "),t("h3",{attrs:{id:"relationship-display-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#relationship-display-options"}},[e._v("#")]),e._v(" Relationship Display Options")]),e._v(" "),t("p",[e._v("General relationship display options can be configured from the "),t("em",[t("strong",[e._v("display options section")])]),e._v(". These include:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("display category")])]),e._v(" - category (if any) under which relationships are displayed in form inputs")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("relationships display priority")])]),e._v(" - priority in which relationships are displayed in form inputs ("),t("em",[e._v("primary, secondary, or tertiary")]),e._v(")")])]),e._v(" "),t("p",[t("img",{attrs:{src:r(523),alt:"Relationship Display Options"}})]),e._v(" "),t("h3",{attrs:{id:"relationship-type-management"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#relationship-type-management"}},[e._v("#")]),e._v(" Relationship Type Management")]),e._v(" "),t("p",[e._v("The types of relationships available to competencies using the configuration can be managed under the "),t("em",[t("strong",[e._v("relationship types")])]),e._v(" section. Relationship types can be "),t("em",[e._v("enabled, disabled,")]),e._v(" and "),t("em",[e._v("relabeled")]),e._v(".")]),e._v(" "),t("p",[e._v("By default, the following relationship types are enabled:")]),e._v(" "),t("ul",[t("li",[t("em",[t("strong",[e._v("isEnabledBy")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("requires")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("desires")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("narrows")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("isRelatedTo")])])]),e._v(" "),t("li",[t("em",[t("strong",[e._v("isEquivalentTo")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:r(446),alt:"Relationship Types Management"}})]),e._v(" "),t("p",[e._v("To reduce screen clutter, the "),t("em",[t("strong",[e._v("relationship types")])]),e._v(" section only displays "),t("em",[e._v("enabled")]),e._v(" relationship types. Currently, enabled relationships can be disabled using the corresponding "),t("em",[t("strong",[e._v("enabled")])]),e._v(" switch to the right of the relationship entry.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(524),alt:"Relationship Types Enabled Toggle"}})]),e._v(" "),t("p",[e._v("To add other relationship types to a configuration, click on the "),t("em",[t("strong",[e._v("manage relationships")])]),e._v(" button on the upper right of the "),t("em",[t("strong",[e._v("relationship types")])]),e._v(" section.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(525),alt:"Manage Relationships"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("manage relationship types")])]),e._v(" dialogue window is open. From this screen, all relationships type currently available in CaSS are categorized and displayed.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(446),alt:"Manage Relationship Types"}})]),e._v(" "),t("p",[e._v("The available relationship types are as follows:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("CaSS Default Relationships")]),e._v(" "),t("ul",[t("li",[e._v("isEnabledBy")]),e._v(" "),t("li",[e._v("requires")]),e._v(" "),t("li",[e._v("desires")]),e._v(" "),t("li",[e._v("narrows")]),e._v(" "),t("li",[e._v("isRelatedTo")]),e._v(" "),t("li",[e._v("isEquivalentTo")]),e._v(" "),t("li",[e._v("broadens")]),e._v(" "),t("li",[e._v("enables")])])]),e._v(" "),t("li",[t("strong",[e._v("Achievement Standards Network Relationships")]),e._v(" "),t("ul",[t("li",[e._v("majorRelated")]),e._v(" "),t("li",[e._v("minorRelated")])])]),e._v(" "),t("li",[t("strong",[e._v("GEMQ")]),e._v(" "),t("ul",[t("li",[e._v("hasChild")]),e._v(" "),t("li",[e._v("isChildOf")])])]),e._v(" "),t("li",[t("strong",[e._v("Other")]),e._v(" "),t("ul",[t("li",[e._v("isSimilarTo")]),e._v(" "),t("li",[e._v("isPartiallySameAs")])])])]),e._v(" "),t("p",[e._v("To enable or disable a relationship type for the configuration, toggle the "),t("em",[t("strong",[e._v("enabled")])]),e._v(" switch to the right of the corresponding type and click the "),t("em",[t("strong",[e._v("ok")])]),e._v(" button.")]),e._v(" "),t("h2",{attrs:{id:"resource-alignment-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#resource-alignment-configuration"}},[e._v("#")]),e._v(" Resource Alignment Configuration")]),e._v(" "),t("p",[e._v("Resource alignment terms are used to map resources such as learning material, courses, and other content to competencies in CAT. If enabled, the alignment type property will show up in the framework editor when aligning competencies to resources.")]),e._v(" "),t("p",[t("img",{attrs:{src:r(526),alt:"Resource Alignemnt Configuration"}})]),e._v(" "),t("p",[e._v("Currently, the CaSS Authoring Tool supports four types of resource alignments:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("teaches")]),e._v(" - The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term")]),e._v(" "),t("li",[t("strong",[e._v("assesses")]),e._v(" - The learning resource being described may be used to assess the competency being referenced")]),e._v(" "),t("li",[t("strong",[e._v("requires")]),e._v(" - The competency being referenced is required in order for effective outcome of the learning resource being described")]),e._v(" "),t("li",[t("strong",[e._v("desires")]),e._v(" - Knowledge of the learning resource being described is desired by the competency being referenced")])]),e._v(" "),t("p",[e._v("Each alignment type can be enabled and disabled by toggling the "),t("em",[t("strong",[e._v("enabled")])]),e._v(" switch to the right of each corresponding item.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/10.cf659c31.js.gz b/docs/assets/js/10.cf659c31.js.gz new file mode 100644 index 000000000..27c4bd113 Binary files /dev/null and b/docs/assets/js/10.cf659c31.js.gz differ diff --git a/docs/assets/js/11.4a74ab57.js.gz b/docs/assets/js/11.4a74ab57.js.gz deleted file mode 100644 index b333241f9..000000000 Binary files a/docs/assets/js/11.4a74ab57.js.gz and /dev/null differ diff --git a/docs/assets/js/11.4a74ab57.js b/docs/assets/js/11.528b58ed.js similarity index 82% rename from docs/assets/js/11.4a74ab57.js rename to docs/assets/js/11.528b58ed.js index b26a6ad05..cdad4fefd 100644 --- a/docs/assets/js/11.4a74ab57.js +++ b/docs/assets/js/11.528b58ed.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{432:function(e,t,a){e.exports=a.p+"assets/img/filter-frameworks-button.e6c645ee.png"},433:function(e,t,a){e.exports=a.p+"assets/img/filter-and-sort-panel.17620163.png"},474:function(e,t,a){e.exports=a.p+"assets/img/frameworks-page.7c414a94.png"},475:function(e,t,a){e.exports=a.p+"assets/img/search-apply-to.5f3c31e9.png"},476:function(e,t,a){e.exports=a.p+"assets/img/search-field-types.4952e58f.png"},477:function(e,t,a){e.exports=a.p+"assets/img/framework-information.96bc1382.png"},478:function(e,t,a){e.exports=a.p+"assets/img/create-new-framework.ec13de7d.png"},479:function(e,t,a){e.exports=a.p+"assets/img/add-competencies.824a430d.png"},480:function(e,t,a){e.exports=a.p+"assets/img/add-children-competencies.acdce853.png"},481:function(e,t,a){e.exports=a.p+"assets/img/edit-competencies.97631d75.png"},482:function(e,t,a){e.exports=a.p+"assets/img/edit-modal.ffa034d8.png"},483:function(e,t,a){e.exports=a.p+"assets/img/add-property.c64cced1.png"},484:function(e,t,a){e.exports=a.p+"assets/img/edit-multiple-competencies.249cc34f.png"},485:function(e,t,a){e.exports=a.p+"assets/img/adding-property-to-multiple.26b5968f.png"},486:function(e,t,a){e.exports=a.p+"assets/img/undo-button.c8cb7762.png"},487:function(e,t,a){e.exports=a.p+"assets/img/drag-and-drop.b8547df3.png"},488:function(e,t,a){e.exports=a.p+"assets/img/cut-copy-paste.948815df.png"},489:function(e,t,a){e.exports=a.p+"assets/img/setting-a-framework-configuration.d432089d.png"},490:function(e,t,a){e.exports=a.p+"assets/img/manage-framework-configuration.3b043c9a.png"},491:function(e,t,a){e.exports=a.p+"assets/img/manage-users-button.7e4db1a3.png"},492:function(e,t,a){e.exports=a.p+"assets/img/share-framework-and-manage-users.dd1d4622.png"},493:function(e,t,a){e.exports=a.p+"assets/img/property-details.f97b720c.png"},653:function(e,t,a){"use strict";a.r(t);var o=a(69),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"finding-and-editing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#finding-and-editing"}},[e._v("#")]),e._v(" Finding and Editing")]),e._v(" "),t("p",[e._v("Competency frameworks can be viewed and managed in CaSS Authoring Tools by navigating to the "),t("em",[t("strong",[e._v("Frameworks")])]),e._v(" page. The Frameworks page can be visited by clicking on the "),t("em",[t("strong",[e._v("Frameworks")])]),e._v(" button on the left sidebar highlighted by the red box in the image below.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(474),alt:"CAT Competency Framework Management - Frameworks Page"}})]),e._v(" "),t("p",[e._v("On this page, frameworks are shown with their names in bold. Beneath the\nname, you can see how many competencies are in the framework, when it\nwas created and last modified. If you have permission to edit the\nframework, it will say “"),t("em",[e._v("Editable")]),e._v("”.")]),e._v(" "),t("h2",{attrs:{id:"sorting-and-filtering-frameworks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sorting-and-filtering-frameworks"}},[e._v("#")]),e._v(" Sorting and Filtering Frameworks")]),e._v(" "),t("p",[e._v("You can sort and filter the list of frameworks by clicking the filter\nbutton next to the search bar. The button next to it clears any filters\nyou’ve applied.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(432),alt:"CAT Competency Framework Management - Filter Button"}})]),e._v(" "),t("p",[e._v("The filter button will open up a side panel to the right of the\nframework list with options to sort, filter, and apply your search term\nto various fields.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(433),alt:"CAT Competency and Framework Management - Filter and Sort Panel"}})]),e._v(" "),t("p",[e._v("The filter options under "),t("em",[t("strong",[e._v("Apply search term to")])]),e._v(" are available based on the type of each field wtihin the current configuration (either browser default or instance default).")]),e._v(" "),t("p",[t("img",{attrs:{src:a(475),alt:"CAT Competency and Framework Management - Search Apply Term TO"}})]),e._v(" "),t("p",[e._v("Fields for frameworks, competencies, and directories that are of the type "),t("em",[t("strong",[e._v("Text")])]),e._v(" or "),t("em",[t("strong",[e._v("Lang-String")])]),e._v(" are made available to filter on when searching. These settings are applied when creating or editing fields in Configuration.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(476),alt:"CAT Competency and Framework Management - Search Apply Term TO"}})]),e._v(" "),t("p",[t("em",[e._v("(Advanced)")]),e._v(" The configuration settings of "),t("code",[e._v("ceasnDataFields=true")]),e._v(" or "),t("code",[e._v("tlaProfile=true")]),e._v(" override browser default or instance default configurations when listing available fields to filter on.")]),e._v(" "),t("h2",{attrs:{id:"opening-a-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#opening-a-framework"}},[e._v("#")]),e._v(" Opening a Framework")]),e._v(" "),t("p",[e._v("Double-click on a framework to open the framework.")]),e._v(" "),t("h2",{attrs:{id:"viewing-a-framework-in-more-detail"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#viewing-a-framework-in-more-detail"}},[e._v("#")]),e._v(" Viewing a Framework in More Detail")]),e._v(" "),t("p",[e._v("Single-click on a framework to view an Information panel with more details and options for the framework.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Information")])]),e._v(" about the framework will show on a side panel to the right of the directory list.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(477),alt:"CAT Competency and Framework Management - Information Panel"}})]),e._v(" "),t("h2",{attrs:{id:"creating-a-new-competency-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-competency-framework"}},[e._v("#")]),e._v(" Creating a New Competency Framework")]),e._v(" "),t("p",[e._v("A new competency framework can be created within CaSS Authoring Tools by pressing the "),t("em",[t("strong",[e._v("Create New")])]),e._v(" button at the top of the framework management page.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(478),alt:"CAT Competency Framework Management - Create New Framework"}})]),e._v(" "),t("p",[e._v("When you click on the "),t("em",[t("strong",[e._v("Create New")])]),e._v(" button to create a new competency framework, you will be required to enter a "),t("em",[e._v("Framework Name")]),e._v(" and "),t("em",[e._v("Framework description")]),e._v(" to your new competency framework. Additional properties can be added to a competency framework that are controlled by CaSS Authoring Tools’ configuration settings. For more information about configuration settings and managing the properties of competency frameworks, see the "),t("em",[t("strong",[e._v("Custom Framework Properties")])]),e._v(" section of this user guide under "),t("em",[t("strong",[e._v("Competency Framework and Competency Configuration")])]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"adding-competencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-competencies"}},[e._v("#")]),e._v(" Adding Competencies")]),e._v(" "),t("p",[e._v("To add competencies to your framework, click the "),t("em",[t("strong",[e._v("add competency")])]),e._v(" button below the framework details.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(479),alt:"CAT Competency Framework Management - Add Competencies"}})]),e._v(" "),t("p",[e._v("You can construct a hierarchy of competencies by checking the box to the left of a competency. The "),t("em",[t("strong",[e._v("add competency")])]),e._v(" button text will change to "),t("em",[t("strong",[e._v("add child")])]),e._v(", which you can click to place a competency underneath the one you’ve checked.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(480),alt:"CAT Competency Framework Management - Add Children to Competencies"}})]),e._v(" "),t("h2",{attrs:{id:"editing-frameworks-and-competencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-frameworks-and-competencies"}},[e._v("#")]),e._v(" Editing Frameworks and Competencies")]),e._v(" "),t("p",[e._v("To edit a single competency or framework, hover over the item you want to edit and an edit icon will appear. Click the icon highlighted in red in the image below.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(481),alt:"CAT Competency Framework Management - Edit"}})]),e._v(" "),t("p",[e._v("A modal will appear and you can edit the framework or competency’s properties. This modal also allows you to delete the competency or framework, remove a competency from the current framework without deleting it, and export the object. Click "),t("em",[t("strong",[e._v("done")])]),e._v(" when you’ve finished making changes.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(482),alt:"CAT Competency Framework Management - Edit Modal"}})]),e._v(" "),t("p",[e._v("You can add new properties to your object from here too by clicking the "),t("em",[t("strong",[e._v("add property")])]),e._v(" button at the bottom of the modal. You’ll see a list of properties that are available to add, determined by the configuration you’re using. Select the property you’d like to add, enter in the value, and click "),t("em",[t("strong",[e._v("save property")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(483),alt:"CAT Competency Framework Management - Add a Property"}})]),e._v(" "),t("p",[e._v("If there’s a property you’d like to add to multiple competencies, use the checkboxes to select the competencies you want to edit and click "),t("em",[t("strong",[e._v("edit multiple")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(484),alt:"CAT Competency Framework Management - Edit Multiple Competencies"}})]),e._v(" "),t("p",[e._v("You’ll see a list of properties that are available to add, determined by the configuration you’re using. Select the property you’d like to add, enter the value, and click "),t("em",[t("strong",[e._v("apply to multiple")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(485),alt:"CAT Competency Framework Management - Adding Property to Multiple Competencies"}})]),e._v(" "),t("p",[e._v("If you make a mistake while editing, click the "),t("em",[t("strong",[e._v("undo")])]),e._v(" button in the bar at the top of the page to revert your most recent changes.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(486),alt:"CAT Competency Framework Management - Undo Button"}})]),e._v(" "),t("h3",{attrs:{id:"changing-competency-hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changing-competency-hierarchy"}},[e._v("#")]),e._v(" Changing Competency Hierarchy")]),e._v(" "),t("p",[e._v("There are several ways to move competencies around in the hierarchy. You can drag and drop the competency to the spot you’d like to move it to by hovering over the competency. The icon highlighted in the image below will appear and you can click on it, hold down, and drag the competency to the appropriate position.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(487),alt:"CAT Competency Framework Management - Drag and Drop"}})]),e._v(" "),t("p",[e._v("You can also move a competency by selecting its checkbox. Click the cut or copy icon highlighted in red in the image below, select another competency, and click the paste icon.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(488),alt:"CAT Competency Framework Management - Cut, Copy, Paste"}})]),e._v(" "),t("p",[e._v("With one competency selected, you can move it with keyboard commands as well. You can cut, copy and paste, or use the arrow keys to move it to the position you want.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Tab")]),e._v(" - Switch focus between elements on the page")]),e._v(" "),t("li",[t("strong",[e._v("Space")]),e._v(" - Select the element currently in focus")]),e._v(" "),t("li",[t("strong",[e._v("Shift + X")]),e._v(" - Cut competency")]),e._v(" "),t("li",[t("strong",[e._v("Shift + C")]),e._v(" - Cut and copy competency")]),e._v(" "),t("li",[t("strong",[e._v("Shift + V")]),e._v(" - Drop competency")]),e._v(" "),t("li",[t("strong",[e._v("Shift + ↑, Shift + ↓")]),e._v(" - Move competency up/down in the list.")]),e._v(" "),t("li",[t("strong",[e._v("Shift + ←, Shift + →")]),e._v(" - Move competency indent/outdent in the list")])]),e._v(" "),t("h2",{attrs:{id:"setting-a-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-a-configuration"}},[e._v("#")]),e._v(" Setting a Configuration")]),e._v(" "),t("p",[e._v("Configurations control which properties you can edit and display within a particular framework, and what types of values they can have. If youdon’t specify a configuration for your framework, the browser, instance, or CaSS default will control the properties. If you want a framework to have a different configuration, you can set one by clicking the\nframework configuration button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(489),alt:"CAT Competency Framework Management - Setting a Framework Configuration"}})]),e._v(" "),t("p",[e._v("This will open up a panel with a list of available configurations to apply. Click "),t("em",[t("strong",[e._v("set as framework default")])]),e._v(" next to the configuration you want.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(490),alt:"CAT Competency Framework Management - Manage Framework Configuration"}})]),e._v(" "),t("h2",{attrs:{id:"managing-users-and-sharing-a-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#managing-users-and-sharing-a-framework"}},[e._v("#")]),e._v(" Managing Users and Sharing a Framework")]),e._v(" "),t("p",[e._v("To control who can view and edit a framework you own, click the "),t("em",[t("strong",[e._v("manage users")])]),e._v(" button highlighted in red in the image below.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(491),alt:"CAT Competency Framework Management - Manage Users Button"}})]),e._v(" "),t("p",[e._v("You can see who the admins and viewers of your framework are, and add or remove users and organizations. This view also has a shareable link to your framework that you can copy to your clipboard and give to someone else.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(492),alt:"CAT Competency Framework Management - Share Framework and Manage Users"}})]),e._v(" "),t("h2",{attrs:{id:"viewing-frameworks-and-competencies-in-more-detail"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#viewing-frameworks-and-competencies-in-more-detail"}},[e._v("#")]),e._v(" Viewing Frameworks and Competencies in More Detail")]),e._v(" "),t("p",[e._v("By default, only primary properties are shown on a framework and competencies. To see some additional properties, click "),t("em",[t("strong",[e._v("secondary")])]),e._v(" in the panel at the top of the screen. This will show all the properties assigned as "),t("em",[e._v("primary")]),e._v(" and "),t("em",[e._v("secondary")]),e._v(" in the configuration that have values. To see all properties that have values, click on "),t("em",[t("strong",[e._v("tertiary")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(493),alt:"CAT Competency Framework Management - Property Details"}})])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{432:function(e,t,a){e.exports=a.p+"assets/img/filter-frameworks-button.e6c645ee.png"},433:function(e,t,a){e.exports=a.p+"assets/img/filter-and-sort-panel.17620163.png"},483:function(e,t,a){e.exports=a.p+"assets/img/frameworks-page.7c414a94.png"},484:function(e,t,a){e.exports=a.p+"assets/img/search-apply-to.5f3c31e9.png"},485:function(e,t,a){e.exports=a.p+"assets/img/search-field-types.4952e58f.png"},486:function(e,t,a){e.exports=a.p+"assets/img/framework-information.96bc1382.png"},487:function(e,t,a){e.exports=a.p+"assets/img/create-new-framework.ec13de7d.png"},488:function(e,t,a){e.exports=a.p+"assets/img/add-competencies.824a430d.png"},489:function(e,t,a){e.exports=a.p+"assets/img/add-children-competencies.acdce853.png"},490:function(e,t,a){e.exports=a.p+"assets/img/edit-competencies.97631d75.png"},491:function(e,t,a){e.exports=a.p+"assets/img/edit-modal.ffa034d8.png"},492:function(e,t,a){e.exports=a.p+"assets/img/add-property.c64cced1.png"},493:function(e,t,a){e.exports=a.p+"assets/img/edit-multiple-competencies.249cc34f.png"},494:function(e,t,a){e.exports=a.p+"assets/img/adding-property-to-multiple.26b5968f.png"},495:function(e,t,a){e.exports=a.p+"assets/img/undo-button.c8cb7762.png"},496:function(e,t,a){e.exports=a.p+"assets/img/drag-and-drop.b8547df3.png"},497:function(e,t,a){e.exports=a.p+"assets/img/cut-copy-paste.948815df.png"},498:function(e,t,a){e.exports=a.p+"assets/img/setting-a-framework-configuration.d432089d.png"},499:function(e,t,a){e.exports=a.p+"assets/img/manage-framework-configuration.3b043c9a.png"},500:function(e,t,a){e.exports=a.p+"assets/img/manage-users-button.7e4db1a3.png"},501:function(e,t,a){e.exports=a.p+"assets/img/share-framework-and-manage-users.dd1d4622.png"},502:function(e,t,a){e.exports=a.p+"assets/img/property-details.f97b720c.png"},654:function(e,t,a){"use strict";a.r(t);var o=a(69),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"finding-and-editing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#finding-and-editing"}},[e._v("#")]),e._v(" Finding and Editing")]),e._v(" "),t("p",[e._v("Competency frameworks can be viewed and managed in CaSS Authoring Tools by navigating to the "),t("em",[t("strong",[e._v("Frameworks")])]),e._v(" page. The Frameworks page can be visited by clicking on the "),t("em",[t("strong",[e._v("Frameworks")])]),e._v(" button on the left sidebar highlighted by the red box in the image below.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(483),alt:"CAT Competency Framework Management - Frameworks Page"}})]),e._v(" "),t("p",[e._v("On this page, frameworks are shown with their names in bold. Beneath the\nname, you can see how many competencies are in the framework, when it\nwas created and last modified. If you have permission to edit the\nframework, it will say “"),t("em",[e._v("Editable")]),e._v("”.")]),e._v(" "),t("h2",{attrs:{id:"sorting-and-filtering-frameworks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sorting-and-filtering-frameworks"}},[e._v("#")]),e._v(" Sorting and Filtering Frameworks")]),e._v(" "),t("p",[e._v("You can sort and filter the list of frameworks by clicking the filter\nbutton next to the search bar. The button next to it clears any filters\nyou’ve applied.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(432),alt:"CAT Competency Framework Management - Filter Button"}})]),e._v(" "),t("p",[e._v("The filter button will open up a side panel to the right of the\nframework list with options to sort, filter, and apply your search term\nto various fields.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(433),alt:"CAT Competency and Framework Management - Filter and Sort Panel"}})]),e._v(" "),t("p",[e._v("The filter options under "),t("em",[t("strong",[e._v("Apply search term to")])]),e._v(" are available based on the type of each field wtihin the current configuration (either browser default or instance default).")]),e._v(" "),t("p",[t("img",{attrs:{src:a(484),alt:"CAT Competency and Framework Management - Search Apply Term TO"}})]),e._v(" "),t("p",[e._v("Fields for frameworks, competencies, and directories that are of the type "),t("em",[t("strong",[e._v("Text")])]),e._v(" or "),t("em",[t("strong",[e._v("Lang-String")])]),e._v(" are made available to filter on when searching. These settings are applied when creating or editing fields in Configuration.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(485),alt:"CAT Competency and Framework Management - Search Apply Term TO"}})]),e._v(" "),t("p",[t("em",[e._v("(Advanced)")]),e._v(" The configuration settings of "),t("code",[e._v("ceasnDataFields=true")]),e._v(" or "),t("code",[e._v("tlaProfile=true")]),e._v(" override browser default or instance default configurations when listing available fields to filter on.")]),e._v(" "),t("h2",{attrs:{id:"opening-a-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#opening-a-framework"}},[e._v("#")]),e._v(" Opening a Framework")]),e._v(" "),t("p",[e._v("Double-click on a framework to open the framework.")]),e._v(" "),t("h2",{attrs:{id:"viewing-a-framework-in-more-detail"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#viewing-a-framework-in-more-detail"}},[e._v("#")]),e._v(" Viewing a Framework in More Detail")]),e._v(" "),t("p",[e._v("Single-click on a framework to view an Information panel with more details and options for the framework.")]),e._v(" "),t("p",[e._v("The "),t("em",[t("strong",[e._v("Information")])]),e._v(" about the framework will show on a side panel to the right of the directory list.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(486),alt:"CAT Competency and Framework Management - Information Panel"}})]),e._v(" "),t("h2",{attrs:{id:"creating-a-new-competency-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-competency-framework"}},[e._v("#")]),e._v(" Creating a New Competency Framework")]),e._v(" "),t("p",[e._v("A new competency framework can be created within CaSS Authoring Tools by pressing the "),t("em",[t("strong",[e._v("Create New")])]),e._v(" button at the top of the framework management page.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(487),alt:"CAT Competency Framework Management - Create New Framework"}})]),e._v(" "),t("p",[e._v("When you click on the "),t("em",[t("strong",[e._v("Create New")])]),e._v(" button to create a new competency framework, you will be required to enter a "),t("em",[e._v("Framework Name")]),e._v(" and "),t("em",[e._v("Framework description")]),e._v(" to your new competency framework. Additional properties can be added to a competency framework that are controlled by CaSS Authoring Tools’ configuration settings. For more information about configuration settings and managing the properties of competency frameworks, see the "),t("em",[t("strong",[e._v("Custom Framework Properties")])]),e._v(" section of this user guide under "),t("em",[t("strong",[e._v("Competency Framework and Competency Configuration")])]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"adding-competencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-competencies"}},[e._v("#")]),e._v(" Adding Competencies")]),e._v(" "),t("p",[e._v("To add competencies to your framework, click the "),t("em",[t("strong",[e._v("add competency")])]),e._v(" button below the framework details.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(488),alt:"CAT Competency Framework Management - Add Competencies"}})]),e._v(" "),t("p",[e._v("You can construct a hierarchy of competencies by checking the box to the left of a competency. The "),t("em",[t("strong",[e._v("add competency")])]),e._v(" button text will change to "),t("em",[t("strong",[e._v("add child")])]),e._v(", which you can click to place a competency underneath the one you’ve checked.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(489),alt:"CAT Competency Framework Management - Add Children to Competencies"}})]),e._v(" "),t("h2",{attrs:{id:"editing-frameworks-and-competencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#editing-frameworks-and-competencies"}},[e._v("#")]),e._v(" Editing Frameworks and Competencies")]),e._v(" "),t("p",[e._v("To edit a single competency or framework, hover over the item you want to edit and an edit icon will appear. Click the icon highlighted in red in the image below.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(490),alt:"CAT Competency Framework Management - Edit"}})]),e._v(" "),t("p",[e._v("A modal will appear and you can edit the framework or competency’s properties. This modal also allows you to delete the competency or framework, remove a competency from the current framework without deleting it, and export the object. Click "),t("em",[t("strong",[e._v("done")])]),e._v(" when you’ve finished making changes.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(491),alt:"CAT Competency Framework Management - Edit Modal"}})]),e._v(" "),t("p",[e._v("You can add new properties to your object from here too by clicking the "),t("em",[t("strong",[e._v("add property")])]),e._v(" button at the bottom of the modal. You’ll see a list of properties that are available to add, determined by the configuration you’re using. Select the property you’d like to add, enter in the value, and click "),t("em",[t("strong",[e._v("save property")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(492),alt:"CAT Competency Framework Management - Add a Property"}})]),e._v(" "),t("p",[e._v("If there’s a property you’d like to add to multiple competencies, use the checkboxes to select the competencies you want to edit and click "),t("em",[t("strong",[e._v("edit multiple")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(493),alt:"CAT Competency Framework Management - Edit Multiple Competencies"}})]),e._v(" "),t("p",[e._v("You’ll see a list of properties that are available to add, determined by the configuration you’re using. Select the property you’d like to add, enter the value, and click "),t("em",[t("strong",[e._v("apply to multiple")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(494),alt:"CAT Competency Framework Management - Adding Property to Multiple Competencies"}})]),e._v(" "),t("p",[e._v("If you make a mistake while editing, click the "),t("em",[t("strong",[e._v("undo")])]),e._v(" button in the bar at the top of the page to revert your most recent changes.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(495),alt:"CAT Competency Framework Management - Undo Button"}})]),e._v(" "),t("h3",{attrs:{id:"changing-competency-hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changing-competency-hierarchy"}},[e._v("#")]),e._v(" Changing Competency Hierarchy")]),e._v(" "),t("p",[e._v("There are several ways to move competencies around in the hierarchy. You can drag and drop the competency to the spot you’d like to move it to by hovering over the competency. The icon highlighted in the image below will appear and you can click on it, hold down, and drag the competency to the appropriate position.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(496),alt:"CAT Competency Framework Management - Drag and Drop"}})]),e._v(" "),t("p",[e._v("You can also move a competency by selecting its checkbox. Click the cut or copy icon highlighted in red in the image below, select another competency, and click the paste icon.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(497),alt:"CAT Competency Framework Management - Cut, Copy, Paste"}})]),e._v(" "),t("p",[e._v("With one competency selected, you can move it with keyboard commands as well. You can cut, copy and paste, or use the arrow keys to move it to the position you want.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Tab")]),e._v(" - Switch focus between elements on the page")]),e._v(" "),t("li",[t("strong",[e._v("Space")]),e._v(" - Select the element currently in focus")]),e._v(" "),t("li",[t("strong",[e._v("Shift + X")]),e._v(" - Cut competency")]),e._v(" "),t("li",[t("strong",[e._v("Shift + C")]),e._v(" - Cut and copy competency")]),e._v(" "),t("li",[t("strong",[e._v("Shift + V")]),e._v(" - Drop competency")]),e._v(" "),t("li",[t("strong",[e._v("Shift + ↑, Shift + ↓")]),e._v(" - Move competency up/down in the list.")]),e._v(" "),t("li",[t("strong",[e._v("Shift + ←, Shift + →")]),e._v(" - Move competency indent/outdent in the list")])]),e._v(" "),t("h2",{attrs:{id:"setting-a-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setting-a-configuration"}},[e._v("#")]),e._v(" Setting a Configuration")]),e._v(" "),t("p",[e._v("Configurations control which properties you can edit and display within a particular framework, and what types of values they can have. If youdon’t specify a configuration for your framework, the browser, instance, or CaSS default will control the properties. If you want a framework to have a different configuration, you can set one by clicking the\nframework configuration button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(498),alt:"CAT Competency Framework Management - Setting a Framework Configuration"}})]),e._v(" "),t("p",[e._v("This will open up a panel with a list of available configurations to apply. Click "),t("em",[t("strong",[e._v("set as framework default")])]),e._v(" next to the configuration you want.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(499),alt:"CAT Competency Framework Management - Manage Framework Configuration"}})]),e._v(" "),t("h2",{attrs:{id:"managing-users-and-sharing-a-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#managing-users-and-sharing-a-framework"}},[e._v("#")]),e._v(" Managing Users and Sharing a Framework")]),e._v(" "),t("p",[e._v("To control who can view and edit a framework you own, click the "),t("em",[t("strong",[e._v("manage users")])]),e._v(" button highlighted in red in the image below.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(500),alt:"CAT Competency Framework Management - Manage Users Button"}})]),e._v(" "),t("p",[e._v("You can see who the admins and viewers of your framework are, and add or remove users and organizations. This view also has a shareable link to your framework that you can copy to your clipboard and give to someone else.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(501),alt:"CAT Competency Framework Management - Share Framework and Manage Users"}})]),e._v(" "),t("h2",{attrs:{id:"viewing-frameworks-and-competencies-in-more-detail"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#viewing-frameworks-and-competencies-in-more-detail"}},[e._v("#")]),e._v(" Viewing Frameworks and Competencies in More Detail")]),e._v(" "),t("p",[e._v("By default, only primary properties are shown on a framework and competencies. To see some additional properties, click "),t("em",[t("strong",[e._v("secondary")])]),e._v(" in the panel at the top of the screen. This will show all the properties assigned as "),t("em",[e._v("primary")]),e._v(" and "),t("em",[e._v("secondary")]),e._v(" in the configuration that have values. To see all properties that have values, click on "),t("em",[t("strong",[e._v("tertiary")])]),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:a(502),alt:"CAT Competency Framework Management - Property Details"}})])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/11.528b58ed.js.gz b/docs/assets/js/11.528b58ed.js.gz new file mode 100644 index 000000000..e1ad7c388 Binary files /dev/null and b/docs/assets/js/11.528b58ed.js.gz differ diff --git a/docs/assets/js/12.d0cd972c.js b/docs/assets/js/12.6d06f142.js similarity index 81% rename from docs/assets/js/12.d0cd972c.js rename to docs/assets/js/12.6d06f142.js index 9a8a9f17b..89deb70eb 100644 --- a/docs/assets/js/12.d0cd972c.js +++ b/docs/assets/js/12.6d06f142.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{437:function(t,e,o){t.exports=o.p+"assets/img/exporting-frameworks.f24ff6ab.png"},438:function(t,e,o){t.exports=o.p+"assets/img/select-option-export.74ccd2cc.png"},587:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-icon.7f901947.png"},588:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-list.f1c39cc9.png"},589:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-filter-button.d272bf77.png"},590:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-filter-and-sort.17588dff.png"},591:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-create-new.3498ad70.png"},592:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-add-concepts.dae00ad7.png"},593:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-add-child.1fb34062.png"},594:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-edit.a18a6403.png"},595:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-edit-modal.8c9e467e.png"},596:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-add-property.1006a24e.png"},597:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-edit-multiple.c857a90f.png"},598:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-adding-property-to-multiple.42e1c4d7.png"},599:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-undo-button.50edb621.png"},600:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-drag-and-drop.bd1def51.png"},601:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-cut-copy-paste.6038a11b.png"},602:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-users-button.eadd66b1.png"},603:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-manage-users.a1d90d20.png"},604:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-property-details.099ea7ad.png"},605:function(t,e,o){t.exports=o.p+"assets/img/taxonomy-import-button.c6bf2ecc.png"},606:function(t,e,o){t.exports=o.p+"assets/img/taxonomy-import-page.c7ac94ce.png"},667:function(t,e,o){"use strict";o.r(e);var a=o(69),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"taxonomy-management"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#taxonomy-management"}},[t._v("#")]),t._v(" Taxonomy Management")]),t._v(" "),e("p",[t._v("In Credential Engine instances of CAT, taxonomies are referred to as "),e("em",[e("strong",[t._v("concept schemes")])]),t._v(".")]),t._v(" "),e("p",[t._v("Taxonomies can be used to categorize and label competencies in frameworks. The "),e("em",[e("strong",[t._v("Taxonomies page")])]),t._v(" can be visited by clicking on the "),e("em",[e("strong",[t._v("Taxonomies icon")])]),t._v(" on the left side bar highlighted by the red box in the image below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(587),alt:"CAT Taxonomy Management - Taxonomies Icon"}})]),t._v(" "),e("p",[t._v("On this page, taxonomies are shown with their names in bold. Beneath the name, you can see when it was created and last modified. If you have permission to edit the taxonomy, it will say "),e("em",[e("strong",[t._v("Editable")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(588),alt:"CAT Taxonomy Management - Taxonomy List"}})]),t._v(" "),e("h2",{attrs:{id:"sorting-and-filtering-taxonomies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sorting-and-filtering-taxonomies"}},[t._v("#")]),t._v(" Sorting and Filtering Taxonomies")]),t._v(" "),e("p",[t._v("You can sort and filter the list of taxonomies by clicking the "),e("em",[e("strong",[t._v("filter button")])]),t._v(" next to the search bar. The button next to it clears any filters you’ve applied.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(589),alt:"CAT Taxonomy Management - Filter Button"}})]),t._v(" "),e("p",[t._v("The filter button will open up a side panel to the right of the taxonomy list with options to sort and filter the list.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(590),alt:"CAT Taxonomy Management - Filter and Sort Panel"}})]),t._v(" "),e("h2",{attrs:{id:"creating-new-taxonomies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-new-taxonomies"}},[t._v("#")]),t._v(" Creating New Taxonomies")]),t._v(" "),e("p",[t._v("A new taxonomy can be created within CaSS Authoring Tools by pressing the "),e("em",[e("strong",[t._v("Create New")])]),t._v(" button at the top of the taxonomy management page.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(591),alt:"CAT Taxonomy Management - Create New Taxonomy"}})]),t._v(" "),e("p",[t._v("When you click on the "),e("em",[e("strong",[t._v("Create New")])]),t._v(" button to create a new taxonomy, you will be required to enter a Taxonomy Name to your new taxonomy. Additional properties can be added by clicking the "),e("em",[e("strong",[t._v("add property")])]),t._v(" button.")]),t._v(" "),e("h2",{attrs:{id:"adding-concepts-to-taxonomies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#adding-concepts-to-taxonomies"}},[t._v("#")]),t._v(" Adding Concepts to Taxonomies")]),t._v(" "),e("p",[t._v("To add concepts to your taxonomy, click the "),e("em",[e("strong",[t._v("add concept")])]),t._v(" button below the taxonomy details.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(592),alt:"CAT Taxonomy Management - Add Concepts"}})]),t._v(" "),e("p",[t._v("You can construct a hierarchy of concepts by checking the box to the left of a concept. The "),e("em",[e("strong",[t._v("add concept")])]),t._v(" button text will change to "),e("em",[e("strong",[t._v("add child")])]),t._v(", which you can click to place a concept underneath the one you’ve checked.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(593),alt:"CAT Taxonomy Management - Add Children to Concepts"}})]),t._v(" "),e("h2",{attrs:{id:"editing-taxonomies-and-concepts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#editing-taxonomies-and-concepts"}},[t._v("#")]),t._v(" Editing Taxonomies and Concepts")]),t._v(" "),e("p",[t._v("To edit a single concept or taxonomy, hover over the item you want to edit and an "),e("em",[e("strong",[t._v("edit icon")])]),t._v(" will appear. Click the icon highlighted in red in the image below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(594),alt:"CAT Taxonomy Management - Edit"}})]),t._v(" "),e("p",[t._v("A modal will appear and you can edit the taxonomy or concept’s properties. This modal also allows you to delete the concept or taxonomy and export the object. Click "),e("em",[e("strong",[t._v("done")])]),t._v(" when you’ve finished making changes.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(595),alt:"CAT Taxonomy Management - Edit Modal"}})]),t._v(" "),e("p",[t._v("You can add new properties to your object from here too by clicking the "),e("em",[e("strong",[t._v("add property")])]),t._v(" button at the bottom of the modal. You’ll see a list of properties that are available to add. Select the property you’d like to add, enter in the value, and click "),e("em",[e("strong",[t._v("save property")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(596),alt:"CAT Taxonomy Management - Add a Property"}})]),t._v(" "),e("p",[t._v("If there’s a property you’d like to add to multiple concepts, use the checkboxes to select the concepts you want to edit and click "),e("em",[e("strong",[t._v("edit multiple")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(597),alt:"CAT Taxonomy Management - Edit Multiple Concepts"}})]),t._v(" "),e("p",[t._v("You’ll see a list of properties that are available to add. Select the property you’d like to add, enter in the value, and click "),e("em",[e("strong",[t._v("apply to multiple")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(598),alt:"CAT Taxonomy Management - Adding Property to Multiple Concepts"}})]),t._v(" "),e("p",[t._v("If you make a mistake while editing, click the undo button in the bar at the top of the page to revert your most recent changes.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(599),alt:"CAT Taxonomy Management - Undo Button"}})]),t._v(" "),e("h3",{attrs:{id:"changing-concept-hierarchy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#changing-concept-hierarchy"}},[t._v("#")]),t._v(" Changing Concept Hierarchy")]),t._v(" "),e("p",[t._v("There are several ways to move concepts around in the hierarchy. You can drag and drop the concept to the spot you’d like to move it to by hovering over the concept. The icon highlighted in the image below will appear and you can click on it, hold down, and drag the concept to the appropriate position.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(600),alt:"CAT Taxonomy Management - Drag and Drop"}})]),t._v(" "),e("p",[t._v("You can also move a concept by selecting its checkbox. Click the cut or copy icon highlighted in red in the image below, select another concept, and click the paste icon.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(601),alt:"CAT Taxonomy Management - Cut, Copy, Paste"}})]),t._v(" "),e("p",[t._v("With one concept selected, you can move it with keyboard commands as well. You can cut, copy and paste, or use the arrow keys to move it to the position you want.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Tab")]),t._v(" - Switch focus between elements on the page")]),t._v(" "),e("li",[e("strong",[t._v("Space")]),t._v(" - Select the element currently in focus")]),t._v(" "),e("li",[e("strong",[t._v("Shift + X")]),t._v(" - Cut competency")]),t._v(" "),e("li",[e("strong",[t._v("Shift + C")]),t._v(" - Cut and copy competency ")]),t._v(" "),e("li",[e("strong",[t._v("Shift + V")]),t._v(" - Drop competency")]),t._v(" "),e("li",[e("strong",[t._v("Shift + ↑, Shift + ↓")]),t._v(" - Move concept up and down in the list")]),t._v(" "),e("li",[e("strong",[t._v("Shift + ←, Shift + →")]),t._v(" - Move concept indent and outdent in the list")])]),t._v(" "),e("h2",{attrs:{id:"managing-users-and-sharing-a-taxonomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#managing-users-and-sharing-a-taxonomy"}},[t._v("#")]),t._v(" Managing Users and Sharing a Taxonomy")]),t._v(" "),e("p",[t._v("To control who can view and edit a taxonomy you own, click the "),e("em",[e("strong",[t._v("manage users")])]),t._v(" button highlighted in red in the image below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(602),alt:"CAT Taxonomy Management - Manage Users Button"}})]),t._v(" "),e("p",[t._v("You can see who the admins and viewers of your taxonomy are, and add or remove users and organizations. This view also has a shareable link to your taxonomy that you can copy to your clipboard and give to someone else.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(603),alt:"CAT Taxonomy Management - Share Taxonomy and Manage Users"}})]),t._v(" "),e("h2",{attrs:{id:"viewing-taxonomies-and-concepts-in-more-detail"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#viewing-taxonomies-and-concepts-in-more-detail"}},[t._v("#")]),t._v(" Viewing Taxonomies and Concepts in More Detail")]),t._v(" "),e("p",[t._v("By default, only primary properties are shown on a taxonomy and concepts. To see some additional properties, click "),e("em",[e("strong",[t._v("secondary")])]),t._v(" in the panel at the top of the screen. This will show all primary and secondary properties that have values. To see all properties that have values, click on "),e("em",[e("strong",[t._v("tertiary")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(604),alt:"CAT Taxonomy Management - Property Details"}})]),t._v(" "),e("h2",{attrs:{id:"exporting-a-taxonomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#exporting-a-taxonomy"}},[t._v("#")]),t._v(" Exporting a Taxonomy")]),t._v(" "),e("p",[t._v("Once you’ve created or imported a new taxonomy, exporting the taxonomy is a relatively simple process. Users must first view their taxonomies through the "),e("em",[e("strong",[t._v("taxonomy tab")])]),t._v(" in the CaSS Authoring Tool and select the desired taxonomy to be exported. Once the taxonomy is selected, users can select the "),e("em",[e("strong",[t._v("export button")])]),t._v(" at the top of the screen and will be prompted to choose their desired file format to export that taxonomy.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(437),alt:"CAT Taxonomy Management - Export Button"}})]),t._v(" "),e("p",[t._v("Users will be prompted with the window displayed below and can select their desired file format from the options provided in the dropdown menu.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(438),alt:"CAT Taxonomy Management - Export Oprtions"}})]),t._v(" "),e("p",[t._v("Once the desired format is selected users can select the "),e("em",[e("strong",[t._v("export file button")])]),t._v(" at the bottom right corner of the window and the taxonomy will be downloaded to your computer or opened in a new tab of your browser.")]),t._v(" "),e("h2",{attrs:{id:"importing-a-taxonomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#importing-a-taxonomy"}},[t._v("#")]),t._v(" Importing a Taxonomy")]),t._v(" "),e("p",[t._v("The process of importing a new taxonomy is also relatively simple. From the taxonomy tab on the sidebar, users have the ability to view all existing taxonomies within the system. At the top of the page is a list of options which allow users to import and create new taxonomies into the database of existing taxonomies.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(605),alt:"CAT Taxonomy Management - Import Button "}})]),t._v(" "),e("p",[t._v("After clicking the "),e("em",[e("strong",[t._v("import taxonomy button")])]),t._v(" users will be prompted with a new page where they have the ability to select the source of the taxonomy they are trying to import. Users have the ability to upload "),e("em",[t._v("csv")]),t._v(" and "),e("em",[t._v("json")]),t._v(" files. Examples and templates are linked from the panel on the right side of the screen. Users can drag the taxonomy into the dotted window displayed below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(606),alt:"CAT Taxonomy Management - Import Page"}})]),t._v(" "),e("p",[t._v("Once imported users can select the process files button and the desired taxonomy will be imported into the your CaSS Authoring Tool database.")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{437:function(t,e,o){t.exports=o.p+"assets/img/exporting-frameworks.f24ff6ab.png"},438:function(t,e,o){t.exports=o.p+"assets/img/select-option-export.74ccd2cc.png"},605:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-icon.7f901947.png"},606:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-list.f1c39cc9.png"},607:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-filter-button.d272bf77.png"},608:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-filter-and-sort.17588dff.png"},609:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-create-new.3498ad70.png"},610:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-add-concepts.dae00ad7.png"},611:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-add-child.1fb34062.png"},612:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-edit.a18a6403.png"},613:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-edit-modal.8c9e467e.png"},614:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-add-property.1006a24e.png"},615:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-edit-multiple.c857a90f.png"},616:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-adding-property-to-multiple.42e1c4d7.png"},617:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-undo-button.50edb621.png"},618:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-drag-and-drop.bd1def51.png"},619:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-cut-copy-paste.6038a11b.png"},620:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-users-button.eadd66b1.png"},621:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-manage-users.a1d90d20.png"},622:function(t,e,o){t.exports=o.p+"assets/img/taxonomies-property-details.099ea7ad.png"},623:function(t,e,o){t.exports=o.p+"assets/img/taxonomy-import-button.c6bf2ecc.png"},624:function(t,e,o){t.exports=o.p+"assets/img/taxonomy-import-page.c7ac94ce.png"},668:function(t,e,o){"use strict";o.r(e);var a=o(69),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"taxonomy-management"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#taxonomy-management"}},[t._v("#")]),t._v(" Taxonomy Management")]),t._v(" "),e("p",[t._v("In Credential Engine instances of CAT, taxonomies are referred to as "),e("em",[e("strong",[t._v("concept schemes")])]),t._v(".")]),t._v(" "),e("p",[t._v("Taxonomies can be used to categorize and label competencies in frameworks. The "),e("em",[e("strong",[t._v("Taxonomies page")])]),t._v(" can be visited by clicking on the "),e("em",[e("strong",[t._v("Taxonomies icon")])]),t._v(" on the left side bar highlighted by the red box in the image below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(605),alt:"CAT Taxonomy Management - Taxonomies Icon"}})]),t._v(" "),e("p",[t._v("On this page, taxonomies are shown with their names in bold. Beneath the name, you can see when it was created and last modified. If you have permission to edit the taxonomy, it will say "),e("em",[e("strong",[t._v("Editable")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(606),alt:"CAT Taxonomy Management - Taxonomy List"}})]),t._v(" "),e("h2",{attrs:{id:"sorting-and-filtering-taxonomies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sorting-and-filtering-taxonomies"}},[t._v("#")]),t._v(" Sorting and Filtering Taxonomies")]),t._v(" "),e("p",[t._v("You can sort and filter the list of taxonomies by clicking the "),e("em",[e("strong",[t._v("filter button")])]),t._v(" next to the search bar. The button next to it clears any filters you’ve applied.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(607),alt:"CAT Taxonomy Management - Filter Button"}})]),t._v(" "),e("p",[t._v("The filter button will open up a side panel to the right of the taxonomy list with options to sort and filter the list.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(608),alt:"CAT Taxonomy Management - Filter and Sort Panel"}})]),t._v(" "),e("h2",{attrs:{id:"creating-new-taxonomies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-new-taxonomies"}},[t._v("#")]),t._v(" Creating New Taxonomies")]),t._v(" "),e("p",[t._v("A new taxonomy can be created within CaSS Authoring Tools by pressing the "),e("em",[e("strong",[t._v("Create New")])]),t._v(" button at the top of the taxonomy management page.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(609),alt:"CAT Taxonomy Management - Create New Taxonomy"}})]),t._v(" "),e("p",[t._v("When you click on the "),e("em",[e("strong",[t._v("Create New")])]),t._v(" button to create a new taxonomy, you will be required to enter a Taxonomy Name to your new taxonomy. Additional properties can be added by clicking the "),e("em",[e("strong",[t._v("add property")])]),t._v(" button.")]),t._v(" "),e("h2",{attrs:{id:"adding-concepts-to-taxonomies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#adding-concepts-to-taxonomies"}},[t._v("#")]),t._v(" Adding Concepts to Taxonomies")]),t._v(" "),e("p",[t._v("To add concepts to your taxonomy, click the "),e("em",[e("strong",[t._v("add concept")])]),t._v(" button below the taxonomy details.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(610),alt:"CAT Taxonomy Management - Add Concepts"}})]),t._v(" "),e("p",[t._v("You can construct a hierarchy of concepts by checking the box to the left of a concept. The "),e("em",[e("strong",[t._v("add concept")])]),t._v(" button text will change to "),e("em",[e("strong",[t._v("add child")])]),t._v(", which you can click to place a concept underneath the one you’ve checked.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(611),alt:"CAT Taxonomy Management - Add Children to Concepts"}})]),t._v(" "),e("h2",{attrs:{id:"editing-taxonomies-and-concepts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#editing-taxonomies-and-concepts"}},[t._v("#")]),t._v(" Editing Taxonomies and Concepts")]),t._v(" "),e("p",[t._v("To edit a single concept or taxonomy, hover over the item you want to edit and an "),e("em",[e("strong",[t._v("edit icon")])]),t._v(" will appear. Click the icon highlighted in red in the image below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(612),alt:"CAT Taxonomy Management - Edit"}})]),t._v(" "),e("p",[t._v("A modal will appear and you can edit the taxonomy or concept’s properties. This modal also allows you to delete the concept or taxonomy and export the object. Click "),e("em",[e("strong",[t._v("done")])]),t._v(" when you’ve finished making changes.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(613),alt:"CAT Taxonomy Management - Edit Modal"}})]),t._v(" "),e("p",[t._v("You can add new properties to your object from here too by clicking the "),e("em",[e("strong",[t._v("add property")])]),t._v(" button at the bottom of the modal. You’ll see a list of properties that are available to add. Select the property you’d like to add, enter in the value, and click "),e("em",[e("strong",[t._v("save property")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(614),alt:"CAT Taxonomy Management - Add a Property"}})]),t._v(" "),e("p",[t._v("If there’s a property you’d like to add to multiple concepts, use the checkboxes to select the concepts you want to edit and click "),e("em",[e("strong",[t._v("edit multiple")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(615),alt:"CAT Taxonomy Management - Edit Multiple Concepts"}})]),t._v(" "),e("p",[t._v("You’ll see a list of properties that are available to add. Select the property you’d like to add, enter in the value, and click "),e("em",[e("strong",[t._v("apply to multiple")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(616),alt:"CAT Taxonomy Management - Adding Property to Multiple Concepts"}})]),t._v(" "),e("p",[t._v("If you make a mistake while editing, click the undo button in the bar at the top of the page to revert your most recent changes.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(617),alt:"CAT Taxonomy Management - Undo Button"}})]),t._v(" "),e("h3",{attrs:{id:"changing-concept-hierarchy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#changing-concept-hierarchy"}},[t._v("#")]),t._v(" Changing Concept Hierarchy")]),t._v(" "),e("p",[t._v("There are several ways to move concepts around in the hierarchy. You can drag and drop the concept to the spot you’d like to move it to by hovering over the concept. The icon highlighted in the image below will appear and you can click on it, hold down, and drag the concept to the appropriate position.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(618),alt:"CAT Taxonomy Management - Drag and Drop"}})]),t._v(" "),e("p",[t._v("You can also move a concept by selecting its checkbox. Click the cut or copy icon highlighted in red in the image below, select another concept, and click the paste icon.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(619),alt:"CAT Taxonomy Management - Cut, Copy, Paste"}})]),t._v(" "),e("p",[t._v("With one concept selected, you can move it with keyboard commands as well. You can cut, copy and paste, or use the arrow keys to move it to the position you want.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Tab")]),t._v(" - Switch focus between elements on the page")]),t._v(" "),e("li",[e("strong",[t._v("Space")]),t._v(" - Select the element currently in focus")]),t._v(" "),e("li",[e("strong",[t._v("Shift + X")]),t._v(" - Cut competency")]),t._v(" "),e("li",[e("strong",[t._v("Shift + C")]),t._v(" - Cut and copy competency ")]),t._v(" "),e("li",[e("strong",[t._v("Shift + V")]),t._v(" - Drop competency")]),t._v(" "),e("li",[e("strong",[t._v("Shift + ↑, Shift + ↓")]),t._v(" - Move concept up and down in the list")]),t._v(" "),e("li",[e("strong",[t._v("Shift + ←, Shift + →")]),t._v(" - Move concept indent and outdent in the list")])]),t._v(" "),e("h2",{attrs:{id:"managing-users-and-sharing-a-taxonomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#managing-users-and-sharing-a-taxonomy"}},[t._v("#")]),t._v(" Managing Users and Sharing a Taxonomy")]),t._v(" "),e("p",[t._v("To control who can view and edit a taxonomy you own, click the "),e("em",[e("strong",[t._v("manage users")])]),t._v(" button highlighted in red in the image below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(620),alt:"CAT Taxonomy Management - Manage Users Button"}})]),t._v(" "),e("p",[t._v("You can see who the admins and viewers of your taxonomy are, and add or remove users and organizations. This view also has a shareable link to your taxonomy that you can copy to your clipboard and give to someone else.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(621),alt:"CAT Taxonomy Management - Share Taxonomy and Manage Users"}})]),t._v(" "),e("h2",{attrs:{id:"viewing-taxonomies-and-concepts-in-more-detail"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#viewing-taxonomies-and-concepts-in-more-detail"}},[t._v("#")]),t._v(" Viewing Taxonomies and Concepts in More Detail")]),t._v(" "),e("p",[t._v("By default, only primary properties are shown on a taxonomy and concepts. To see some additional properties, click "),e("em",[e("strong",[t._v("secondary")])]),t._v(" in the panel at the top of the screen. This will show all primary and secondary properties that have values. To see all properties that have values, click on "),e("em",[e("strong",[t._v("tertiary")])]),t._v(".")]),t._v(" "),e("p",[e("img",{attrs:{src:o(622),alt:"CAT Taxonomy Management - Property Details"}})]),t._v(" "),e("h2",{attrs:{id:"exporting-a-taxonomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#exporting-a-taxonomy"}},[t._v("#")]),t._v(" Exporting a Taxonomy")]),t._v(" "),e("p",[t._v("Once you’ve created or imported a new taxonomy, exporting the taxonomy is a relatively simple process. Users must first view their taxonomies through the "),e("em",[e("strong",[t._v("taxonomy tab")])]),t._v(" in the CaSS Authoring Tool and select the desired taxonomy to be exported. Once the taxonomy is selected, users can select the "),e("em",[e("strong",[t._v("export button")])]),t._v(" at the top of the screen and will be prompted to choose their desired file format to export that taxonomy.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(437),alt:"CAT Taxonomy Management - Export Button"}})]),t._v(" "),e("p",[t._v("Users will be prompted with the window displayed below and can select their desired file format from the options provided in the dropdown menu.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(438),alt:"CAT Taxonomy Management - Export Oprtions"}})]),t._v(" "),e("p",[t._v("Once the desired format is selected users can select the "),e("em",[e("strong",[t._v("export file button")])]),t._v(" at the bottom right corner of the window and the taxonomy will be downloaded to your computer or opened in a new tab of your browser.")]),t._v(" "),e("h2",{attrs:{id:"importing-a-taxonomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#importing-a-taxonomy"}},[t._v("#")]),t._v(" Importing a Taxonomy")]),t._v(" "),e("p",[t._v("The process of importing a new taxonomy is also relatively simple. From the taxonomy tab on the sidebar, users have the ability to view all existing taxonomies within the system. At the top of the page is a list of options which allow users to import and create new taxonomies into the database of existing taxonomies.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(623),alt:"CAT Taxonomy Management - Import Button "}})]),t._v(" "),e("p",[t._v("After clicking the "),e("em",[e("strong",[t._v("import taxonomy button")])]),t._v(" users will be prompted with a new page where they have the ability to select the source of the taxonomy they are trying to import. Users have the ability to upload "),e("em",[t._v("csv")]),t._v(" and "),e("em",[t._v("json")]),t._v(" files. Examples and templates are linked from the panel on the right side of the screen. Users can drag the taxonomy into the dotted window displayed below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(624),alt:"CAT Taxonomy Management - Import Page"}})]),t._v(" "),e("p",[t._v("Once imported users can select the process files button and the desired taxonomy will be imported into the your CaSS Authoring Tool database.")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/12.6d06f142.js.gz b/docs/assets/js/12.6d06f142.js.gz new file mode 100644 index 000000000..709827ecf Binary files /dev/null and b/docs/assets/js/12.6d06f142.js.gz differ diff --git a/docs/assets/js/12.d0cd972c.js.gz b/docs/assets/js/12.d0cd972c.js.gz deleted file mode 100644 index 2c79f49d1..000000000 Binary files a/docs/assets/js/12.d0cd972c.js.gz and /dev/null differ diff --git a/docs/assets/js/13.a89eef3b.js b/docs/assets/js/13.7db161ea.js similarity index 80% rename from docs/assets/js/13.a89eef3b.js rename to docs/assets/js/13.7db161ea.js index 74d1df4b1..ec76b4209 100644 --- a/docs/assets/js/13.a89eef3b.js +++ b/docs/assets/js/13.7db161ea.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{447:function(e,t,a){e.exports=a.p+"assets/img/alignment-bubble.d1653648.png"},538:function(e,t,a){e.exports=a.p+"assets/img/crosswalk-navigation.d511ba6f.png"},539:function(e,t,a){e.exports=a.p+"assets/img/progress-bar.b67face7.png"},540:function(e,t,a){e.exports=a.p+"assets/img/main-alignment-screen.57985f0f.png"},541:function(e,t,a){e.exports=a.p+"assets/img/action-buttons.aa2fc6ad.png"},542:function(e,t,a){e.exports=a.p+"assets/img/relationship-add-button.fe96ae46.png"},543:function(e,t,a){e.exports=a.p+"assets/img/relationship-type-selection.1ccc143f.png"},544:function(e,t,a){e.exports=a.p+"assets/img/target-competency-selection.1dc6c010.png"},545:function(e,t,a){e.exports=a.p+"assets/img/apply-alignments-button.6cc30393.png"},546:function(e,t,a){e.exports=a.p+"assets/img/alignment-change-tally.ab69747d.png"},547:function(e,t,a){e.exports=a.p+"assets/img/target-competency-removal.e40196e6.png"},548:function(e,t,a){e.exports=a.p+"assets/img/apply-alignment-bubble.88166cf5.png"},549:function(e,t,a){e.exports=a.p+"assets/img/alignment-removing-one.027f9b51.png"},550:function(e,t,a){e.exports=a.p+"assets/img/alignment-save-and-review.32dcf037.png"},551:function(e,t,a){e.exports=a.p+"assets/img/alignment-summary.f357b47a.png"},552:function(e,t,a){e.exports=a.p+"assets/img/framework-application-selection.770e618c.png"},553:function(e,t,a){e.exports=a.p+"assets/img/continue-editing.0f0e5022.png"},554:function(e,t,a){e.exports=a.p+"assets/img/save-alignments.9b945c1b.png"},659:function(e,t,a){"use strict";a.r(t);var s=a(69),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"framework-crosswalk-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#framework-crosswalk-tool"}},[e._v("#")]),e._v(" Framework Crosswalk Tool")]),e._v(" "),t("p",[e._v("The Framework Crosswalk Tool can be used to create relationships across two separate frameworks.")]),e._v(" "),t("p",[e._v("In order to apply any relationships created with the crosswalk tool, at least one of the frameworks initially selected in the tool wizard must be owned and editable by the logged in user.")]),e._v(" "),t("h2",{attrs:{id:"accessing-the-framework-crosswalk-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessing-the-framework-crosswalk-tool"}},[e._v("#")]),e._v(" Accessing the Framework Crosswalk Tool")]),e._v(" "),t("p",[e._v("The Framework Crosswalk Tool can be accessed at any time by selecting the crosswalk frameworks icon under the "),t("em",[t("strong",[e._v("competencies & frameworks")])]),e._v(" category in the navigation menu.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(538),alt:"CAT Competency Framework Management - Crosswalk Frameworks Navigation"}})]),e._v(" "),t("h2",{attrs:{id:"crosswalk-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#crosswalk-overview"}},[e._v("#")]),e._v(" Crosswalk Overview")]),e._v(" "),t("p",[e._v("Framework crosswalking is comprised of four steps:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Select Source")]),e._v(" "),t("ul",[t("li",[e._v("Selection of the source framework")]),e._v(" "),t("li",[e._v("The selection for the source framework is limited to frameworks that\nare owned and editable by the current user.")]),e._v(" "),t("li",[e._v("The source framework also defines the relationship types available\nfor the crosswalk by determining the applied configuration of that\nframework.  If there is no explicit configuration applied to the\nselected framework, the relationships available for the crosswalk\nare determined by the selected browser default configuration or the\ninstance default configuration.")])])]),e._v(" "),t("li",[t("strong",[e._v("Select Target")]),e._v(" "),t("ul",[t("li",[e._v("Selection of the target framework")])])]),e._v(" "),t("li",[t("strong",[e._v("Align Frameworks")]),e._v(" "),t("ul",[t("li",[e._v("Creation of the relationships between the\ncompetencies of the two frameworks")])])]),e._v(" "),t("li",[t("strong",[e._v("Save & Review")]),e._v(" "),t("ul",[t("li",[e._v("Review of created relationships, determination of\nwhere the relationships will reside (one or both of the chosen\nframeworks), and the saving of the relationships")])])])]),e._v(" "),t("p",[e._v("The current step will be highlighted by the progress bar at the top of the crosswalk tool screen.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(539),alt:"CAT Crosswalk Frameworks - Progress Bar"}})]),e._v(" "),t("h2",{attrs:{id:"aligning-framework-competencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#aligning-framework-competencies"}},[e._v("#")]),e._v(" Aligning Framework Competencies")]),e._v(" "),t("p",[e._v("After selecting the source and target frameworks, the selected frameworks will be displayed in side by side panes. Any existing relationships between the two frameworks will be indicated by orange bubbles underneath the corresponding competency in the source framework pane.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(540),alt:"CAT Crosswalk Frameworks - Main Alignment Screen"}})]),e._v(" "),t("p",[e._v("At the top of each framework pane are four action buttons. Clicking these action buttons will affect only the framework view in the corresponding pane.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("show aligned only")]),e._v(" - show only competencies that have alignments to competencies in the other framework")]),e._v(" "),t("li",[t("strong",[e._v("show unaligned only")]),e._v(" - show only competencies that do not have alignments to competencies in the other framework")]),e._v(" "),t("li",[t("strong",[e._v("show all ("),t("em",[e._v("default")]),e._v(")")]),e._v(" - show all competencies regardless of existing alignments")]),e._v(" "),t("li",[t("strong",[e._v("change framework")]),e._v(" - change the source/target framework\n"),t("ul",[t("li",[e._v("Selecting this action will remove all unsaved alignments from the current crosswalk session")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:a(541),alt:"CAT Crosswalk Frameworks - Crosswalk Action Buttons"}})]),e._v(" "),t("h3",{attrs:{id:"adding-a-crosswalk-relationship-alignment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-crosswalk-relationship-alignment"}},[e._v("#")]),e._v(" Adding a Crosswalk Relationship/Alignment")]),e._v(" "),t("p",[e._v("To begin adding a relationship between the competencies within the frameworks, hover over the appropriate competency in the source framework pane and click the "),t("em",[t("strong",[e._v("add")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(542),alt:"CAT Crosswalk Frameworks - Relationship Add Button"}})]),e._v(" "),t("p",[e._v("Select the desired relationship type from the dropdown.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(543),alt:"CAT Crosswalk Frameworks - Relationship Type Selection"}})]),e._v(" "),t("p",[e._v("Once a relationship type has been selected, click the "),t("em",[t("strong",[e._v("+ button")])]),e._v(" to the right of each competency in the target framework pane you wish to apply the relationship. When clicked, the "),t("em",[t("strong",[e._v("+ button")])]),e._v(" will transition into a checkmark. Clicking on this checkmark will remove the relationship.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(544),alt:"CAT Crosswalk Frameworks - Target Competency Selection"}})]),e._v(" "),t("p",[e._v("After selecting the desired competencies, click the apply alignments button.  Once applied, you will notice a running tally of added and removed alignments under the crosswalk progress bar.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(545),alt:"CAT Crosswalk Frameworks - Apply Alignments Button."}})]),e._v(" "),t("p",[t("img",{attrs:{src:a(546),alt:"CAT Crosswalk Frameworks - Alignment Change Tally"}})]),e._v(" "),t("p",[e._v("The alignment tally will keep track of both the addition of new alignments and the removal of alignments created in previous crosswalk sessions.")]),e._v(" "),t("p",[e._v("Once applied, alignments can be quickly accessed by clicking on the corresponding alignment bubble underneath the source competency.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(447),alt:"CAT Crosswalk Frameworks - Alignment Bubble"}})]),e._v(" "),t("h3",{attrs:{id:"removing-a-crosswalk-relationship-alignment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-crosswalk-relationship-alignment"}},[e._v("#")]),e._v(" Removing a Crosswalk Relationship/Alignment")]),e._v(" "),t("p",[e._v("To remove an existing relationship click on the corresponding alignment bubble underneath the source competency.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(447),alt:"CAT Crosswalk Frameworks - Alignment Bubble"}})]),e._v(" "),t("p",[e._v("In the target pane, click on the checkmark icon to the right of the competency you wish to remove from the relationship. When clicked, the checkmark icon will transition into a + button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(547),alt:"CAT Crosswalk Frameworks - Target Competency Removal"}})]),e._v(" "),t("p",[e._v("After removing the undesired competencies, click the apply alignments button. Once applied, you will notice a running tally of added and removed alignments under the crosswalk progress bar.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(548),alt:"CAT Crosswalk Frameworks - Apply Alignments Button."}})]),e._v(" "),t("p",[t("img",{attrs:{src:a(549),alt:"CAT Crosswalk Frameworks - Alignment Change Tally"}})]),e._v(" "),t("h2",{attrs:{id:"crosswalk-review-and-save"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#crosswalk-review-and-save"}},[e._v("#")]),e._v(" Crosswalk Review and Save")]),e._v(" "),t("p",[e._v("To save all changes made during the crosswalk session to the repository, click on the "),t("em",[t("strong",[e._v("save & review")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(550),alt:"CAT Crosswalk Frameworks - Save & Review"}})]),e._v(" "),t("p",[e._v("The summary screen will be displayed detailing the overall alignment changes between the two frameworks and the framework application selector. By default, all owned or editable frameworks used in the crosswalk will be checked. A check mark next the framework means all alignment/relationship changes made will be applied to that framework.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("You may only apply alignment changes to frameworks that you own or can edit.")])]),e._v(" "),t("p",[t("img",{attrs:{src:a(551),alt:"CAT Crosswalk Frameworks - Crosswalk Alignment Summary"}})]),e._v(" "),t("p",[t("img",{attrs:{src:a(552),alt:"CAT Crosswalk Frameworks - Framework Application Selection"}})]),e._v(" "),t("p",[e._v("If you wish to make further changes to the alignments, click on the "),t("em",[t("strong",[e._v("continue editing")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(553),alt:"CAT Crosswalk Frameworks - Continue Editing Button"}})]),e._v(" "),t("p",[e._v("When you are satisfied with your changes, click on the "),t("em",[t("strong",[e._v("save alignments")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(554),alt:"CAT Crosswalk Frameworks - Save Alignments Button"}})])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{447:function(e,t,a){e.exports=a.p+"assets/img/alignment-bubble.d1653648.png"},533:function(e,t,a){e.exports=a.p+"assets/img/crosswalk-navigation.d511ba6f.png"},534:function(e,t,a){e.exports=a.p+"assets/img/progress-bar.b67face7.png"},535:function(e,t,a){e.exports=a.p+"assets/img/main-alignment-screen.57985f0f.png"},536:function(e,t,a){e.exports=a.p+"assets/img/action-buttons.aa2fc6ad.png"},537:function(e,t,a){e.exports=a.p+"assets/img/relationship-add-button.fe96ae46.png"},538:function(e,t,a){e.exports=a.p+"assets/img/relationship-type-selection.1ccc143f.png"},539:function(e,t,a){e.exports=a.p+"assets/img/target-competency-selection.1dc6c010.png"},540:function(e,t,a){e.exports=a.p+"assets/img/apply-alignments-button.6cc30393.png"},541:function(e,t,a){e.exports=a.p+"assets/img/alignment-change-tally.ab69747d.png"},542:function(e,t,a){e.exports=a.p+"assets/img/target-competency-removal.e40196e6.png"},543:function(e,t,a){e.exports=a.p+"assets/img/apply-alignment-bubble.88166cf5.png"},544:function(e,t,a){e.exports=a.p+"assets/img/alignment-removing-one.027f9b51.png"},545:function(e,t,a){e.exports=a.p+"assets/img/alignment-save-and-review.32dcf037.png"},546:function(e,t,a){e.exports=a.p+"assets/img/alignment-summary.f357b47a.png"},547:function(e,t,a){e.exports=a.p+"assets/img/framework-application-selection.770e618c.png"},548:function(e,t,a){e.exports=a.p+"assets/img/continue-editing.0f0e5022.png"},549:function(e,t,a){e.exports=a.p+"assets/img/save-alignments.9b945c1b.png"},658:function(e,t,a){"use strict";a.r(t);var s=a(69),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"framework-crosswalk-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#framework-crosswalk-tool"}},[e._v("#")]),e._v(" Framework Crosswalk Tool")]),e._v(" "),t("p",[e._v("The Framework Crosswalk Tool can be used to create relationships across two separate frameworks.")]),e._v(" "),t("p",[e._v("In order to apply any relationships created with the crosswalk tool, at least one of the frameworks initially selected in the tool wizard must be owned and editable by the logged in user.")]),e._v(" "),t("h2",{attrs:{id:"accessing-the-framework-crosswalk-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#accessing-the-framework-crosswalk-tool"}},[e._v("#")]),e._v(" Accessing the Framework Crosswalk Tool")]),e._v(" "),t("p",[e._v("The Framework Crosswalk Tool can be accessed at any time by selecting the crosswalk frameworks icon under the "),t("em",[t("strong",[e._v("competencies & frameworks")])]),e._v(" category in the navigation menu.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(533),alt:"CAT Competency Framework Management - Crosswalk Frameworks Navigation"}})]),e._v(" "),t("h2",{attrs:{id:"crosswalk-overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#crosswalk-overview"}},[e._v("#")]),e._v(" Crosswalk Overview")]),e._v(" "),t("p",[e._v("Framework crosswalking is comprised of four steps:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Select Source")]),e._v(" "),t("ul",[t("li",[e._v("Selection of the source framework")]),e._v(" "),t("li",[e._v("The selection for the source framework is limited to frameworks that\nare owned and editable by the current user.")]),e._v(" "),t("li",[e._v("The source framework also defines the relationship types available\nfor the crosswalk by determining the applied configuration of that\nframework.  If there is no explicit configuration applied to the\nselected framework, the relationships available for the crosswalk\nare determined by the selected browser default configuration or the\ninstance default configuration.")])])]),e._v(" "),t("li",[t("strong",[e._v("Select Target")]),e._v(" "),t("ul",[t("li",[e._v("Selection of the target framework")])])]),e._v(" "),t("li",[t("strong",[e._v("Align Frameworks")]),e._v(" "),t("ul",[t("li",[e._v("Creation of the relationships between the\ncompetencies of the two frameworks")])])]),e._v(" "),t("li",[t("strong",[e._v("Save & Review")]),e._v(" "),t("ul",[t("li",[e._v("Review of created relationships, determination of\nwhere the relationships will reside (one or both of the chosen\nframeworks), and the saving of the relationships")])])])]),e._v(" "),t("p",[e._v("The current step will be highlighted by the progress bar at the top of the crosswalk tool screen.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(534),alt:"CAT Crosswalk Frameworks - Progress Bar"}})]),e._v(" "),t("h2",{attrs:{id:"aligning-framework-competencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#aligning-framework-competencies"}},[e._v("#")]),e._v(" Aligning Framework Competencies")]),e._v(" "),t("p",[e._v("After selecting the source and target frameworks, the selected frameworks will be displayed in side by side panes. Any existing relationships between the two frameworks will be indicated by orange bubbles underneath the corresponding competency in the source framework pane.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(535),alt:"CAT Crosswalk Frameworks - Main Alignment Screen"}})]),e._v(" "),t("p",[e._v("At the top of each framework pane are four action buttons. Clicking these action buttons will affect only the framework view in the corresponding pane.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("show aligned only")]),e._v(" - show only competencies that have alignments to competencies in the other framework")]),e._v(" "),t("li",[t("strong",[e._v("show unaligned only")]),e._v(" - show only competencies that do not have alignments to competencies in the other framework")]),e._v(" "),t("li",[t("strong",[e._v("show all ("),t("em",[e._v("default")]),e._v(")")]),e._v(" - show all competencies regardless of existing alignments")]),e._v(" "),t("li",[t("strong",[e._v("change framework")]),e._v(" - change the source/target framework\n"),t("ul",[t("li",[e._v("Selecting this action will remove all unsaved alignments from the current crosswalk session")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:a(536),alt:"CAT Crosswalk Frameworks - Crosswalk Action Buttons"}})]),e._v(" "),t("h3",{attrs:{id:"adding-a-crosswalk-relationship-alignment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-crosswalk-relationship-alignment"}},[e._v("#")]),e._v(" Adding a Crosswalk Relationship/Alignment")]),e._v(" "),t("p",[e._v("To begin adding a relationship between the competencies within the frameworks, hover over the appropriate competency in the source framework pane and click the "),t("em",[t("strong",[e._v("add")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(537),alt:"CAT Crosswalk Frameworks - Relationship Add Button"}})]),e._v(" "),t("p",[e._v("Select the desired relationship type from the dropdown.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(538),alt:"CAT Crosswalk Frameworks - Relationship Type Selection"}})]),e._v(" "),t("p",[e._v("Once a relationship type has been selected, click the "),t("em",[t("strong",[e._v("+ button")])]),e._v(" to the right of each competency in the target framework pane you wish to apply the relationship. When clicked, the "),t("em",[t("strong",[e._v("+ button")])]),e._v(" will transition into a checkmark. Clicking on this checkmark will remove the relationship.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(539),alt:"CAT Crosswalk Frameworks - Target Competency Selection"}})]),e._v(" "),t("p",[e._v("After selecting the desired competencies, click the apply alignments button.  Once applied, you will notice a running tally of added and removed alignments under the crosswalk progress bar.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(540),alt:"CAT Crosswalk Frameworks - Apply Alignments Button."}})]),e._v(" "),t("p",[t("img",{attrs:{src:a(541),alt:"CAT Crosswalk Frameworks - Alignment Change Tally"}})]),e._v(" "),t("p",[e._v("The alignment tally will keep track of both the addition of new alignments and the removal of alignments created in previous crosswalk sessions.")]),e._v(" "),t("p",[e._v("Once applied, alignments can be quickly accessed by clicking on the corresponding alignment bubble underneath the source competency.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(447),alt:"CAT Crosswalk Frameworks - Alignment Bubble"}})]),e._v(" "),t("h3",{attrs:{id:"removing-a-crosswalk-relationship-alignment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-crosswalk-relationship-alignment"}},[e._v("#")]),e._v(" Removing a Crosswalk Relationship/Alignment")]),e._v(" "),t("p",[e._v("To remove an existing relationship click on the corresponding alignment bubble underneath the source competency.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(447),alt:"CAT Crosswalk Frameworks - Alignment Bubble"}})]),e._v(" "),t("p",[e._v("In the target pane, click on the checkmark icon to the right of the competency you wish to remove from the relationship. When clicked, the checkmark icon will transition into a + button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(542),alt:"CAT Crosswalk Frameworks - Target Competency Removal"}})]),e._v(" "),t("p",[e._v("After removing the undesired competencies, click the apply alignments button. Once applied, you will notice a running tally of added and removed alignments under the crosswalk progress bar.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(543),alt:"CAT Crosswalk Frameworks - Apply Alignments Button."}})]),e._v(" "),t("p",[t("img",{attrs:{src:a(544),alt:"CAT Crosswalk Frameworks - Alignment Change Tally"}})]),e._v(" "),t("h2",{attrs:{id:"crosswalk-review-and-save"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#crosswalk-review-and-save"}},[e._v("#")]),e._v(" Crosswalk Review and Save")]),e._v(" "),t("p",[e._v("To save all changes made during the crosswalk session to the repository, click on the "),t("em",[t("strong",[e._v("save & review")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(545),alt:"CAT Crosswalk Frameworks - Save & Review"}})]),e._v(" "),t("p",[e._v("The summary screen will be displayed detailing the overall alignment changes between the two frameworks and the framework application selector. By default, all owned or editable frameworks used in the crosswalk will be checked. A check mark next the framework means all alignment/relationship changes made will be applied to that framework.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("You may only apply alignment changes to frameworks that you own or can edit.")])]),e._v(" "),t("p",[t("img",{attrs:{src:a(546),alt:"CAT Crosswalk Frameworks - Crosswalk Alignment Summary"}})]),e._v(" "),t("p",[t("img",{attrs:{src:a(547),alt:"CAT Crosswalk Frameworks - Framework Application Selection"}})]),e._v(" "),t("p",[e._v("If you wish to make further changes to the alignments, click on the "),t("em",[t("strong",[e._v("continue editing")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(548),alt:"CAT Crosswalk Frameworks - Continue Editing Button"}})]),e._v(" "),t("p",[e._v("When you are satisfied with your changes, click on the "),t("em",[t("strong",[e._v("save alignments")])]),e._v(" button.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(549),alt:"CAT Crosswalk Frameworks - Save Alignments Button"}})])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/13.7db161ea.js.gz b/docs/assets/js/13.7db161ea.js.gz new file mode 100644 index 000000000..74fb4d8be Binary files /dev/null and b/docs/assets/js/13.7db161ea.js.gz differ diff --git a/docs/assets/js/13.a89eef3b.js.gz b/docs/assets/js/13.a89eef3b.js.gz deleted file mode 100644 index de8c9a90e..000000000 Binary files a/docs/assets/js/13.a89eef3b.js.gz and /dev/null differ diff --git a/docs/assets/js/14.91d7bcdb.js b/docs/assets/js/14.4d1f45ec.js similarity index 79% rename from docs/assets/js/14.91d7bcdb.js rename to docs/assets/js/14.4d1f45ec.js index c52ffa9b7..c6a9455e7 100644 --- a/docs/assets/js/14.91d7bcdb.js +++ b/docs/assets/js/14.4d1f45ec.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{607:function(e,s,r){e.exports=r.p+"assets/img/users-and-groups.aeb260d8.png"},608:function(e,s,r){e.exports=r.p+"assets/img/users-groups.5fc9d7ab.png"},609:function(e,s,r){e.exports=r.p+"assets/img/create-new-group.1c2d8509.png"},610:function(e,s,r){e.exports=r.p+"assets/img/groups-add-subgroup.ee27cd27.png"},611:function(e,s,r){e.exports=r.p+"assets/img/groups-subgroup-indicators.d2f09e52.png"},612:function(e,s,r){e.exports=r.p+"assets/img/user-group-details.ffa7b5c4.png"},613:function(e,s,r){e.exports=r.p+"assets/img/groups-edit-details.b93902fe.png"},614:function(e,s,r){e.exports=r.p+"assets/img/managers.e62b3a9a.png"},615:function(e,s,r){e.exports=r.p+"assets/img/add-managers.847493a2.png"},616:function(e,s,r){e.exports=r.p+"assets/img/available-managers.6dc6e2de.png"},617:function(e,s,r){e.exports=r.p+"assets/img/remove-managers.3df290e2.png"},618:function(e,s,r){e.exports=r.p+"assets/img/reassign-as-member.df4c0f56.png"},619:function(e,s,r){e.exports=r.p+"assets/img/members.a21a128f.png"},620:function(e,s,r){e.exports=r.p+"assets/img/add-members.847493a2.png"},621:function(e,s,r){e.exports=r.p+"assets/img/available-members.dcb0e42e.png"},622:function(e,s,r){e.exports=r.p+"assets/img/remove.c0077c88.png"},623:function(e,s,r){e.exports=r.p+"assets/img/reassign-as-manager.ea67d221.png"},624:function(e,s,r){e.exports=r.p+"assets/img/save-user-group.2a9b7910.png"},669:function(e,s,r){"use strict";r.r(s);var a=r(69),t=Object(a.a)({},(function(){var e=this,s=e._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"user-group-management"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#user-group-management"}},[e._v("#")]),e._v(" User Group Management")]),e._v(" "),s("p",[e._v("In the CaSS authoring environment, user groups allow for multiple users to assume a single shared 'identity'. Members of a group are granted access to any CaSS object that the group has been explicitly assigned.")]),e._v(" "),s("p",[e._v("Subgroups can be created within Groups to further organize and define access to CaSS objects for multiple users.")]),e._v(" "),s("h2",{attrs:{id:"accessing-the-cat-user-group-manager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#accessing-the-cat-user-group-manager"}},[e._v("#")]),e._v(" Accessing the CAT User Group Manager")]),e._v(" "),s("p",[s("strong",[e._v("Important: To access the CAT user group manager, you must be logged into the CAT application.")])]),e._v(" "),s("p",[e._v("The CAT user group manager can be accessed at any time by selecting the "),s("em",[s("strong",[e._v("users and groups")])]),e._v(" icon on the lower left corner of the navigation menu.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(607),alt:"Users and groups"}})]),e._v(" "),s("p",[s("strong",[e._v("CAT User Group Manager - Navigation Menu - Users and Groups")])]),e._v(" "),s("p",[e._v("The "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(" list contains options for creating a new group, viewing group members, and accessing existing groups.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(608),alt:"Users groups"}})]),e._v(" "),s("p",[e._v("To view a list of all group members, click on "),s("em",[s("strong",[e._v("Member List")])]),e._v(" under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(". This only lists users who are already within a group.")]),e._v(" "),s("h2",{attrs:{id:"creating-a-new-user-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-user-group"}},[e._v("#")]),e._v(" Creating a New User Group")]),e._v(" "),s("p",[e._v("To create a new group, click on the "),s("em",[s("strong",[e._v("create new group")])]),e._v(" button under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(".")]),e._v(" "),s("p",[s("img",{attrs:{src:r(609),alt:"Create new group"}})]),e._v(" "),s("p",[e._v("A new group is created with a default name and description.")]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),s("p",[e._v("There may be noticeable processing time when creating a new group. CAT user groups are assigned identity keys that must be generated at creation time. This process may take several seconds.")])]),e._v(" "),s("h2",{attrs:{id:"creating-a-new-sub-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-sub-group"}},[e._v("#")]),e._v(" Creating a New Sub-Group")]),e._v(" "),s("p",[e._v("To add a sub-group to a currently open group, click on the "),s("em",[s("strong",[e._v("add sub-group")])]),e._v(" button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(".\n"),s("em",[e._v("Sub-groups")]),e._v(" can be created within "),s("em",[e._v("Groups")]),e._v(" to further organize and define access to CaSS objects for multiple users.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(610),alt:"Create new sub-group"}})]),e._v(" "),s("p",[e._v("A new sub-group is created with a default name and description. The path of the group and the listing under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(" indicate the parent of the sub-group.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(611),alt:"Sub-group Indicators"}})]),e._v(" "),s("p",[e._v("The actions for managing users and editing groups apply to sub-groups as well.")]),e._v(" "),s("h2",{attrs:{id:"managing-a-user-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#managing-a-user-group"}},[e._v("#")]),e._v(" Managing a User Group")]),e._v(" "),s("p",[e._v("To access existing groups in the current CAT instance, click on the group name under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(" to the left of the "),s("em",[s("strong",[e._v("Group Details")])]),e._v(".")]),e._v(" "),s("p",[s("em",[e._v("Group Details")]),e._v(" show the name, description, and a list of members within the group.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(612),alt:"User Group Details"}})]),e._v(" "),s("p",[e._v("Click on the edit icon next to the "),s("em",[s("strong",[e._v("name")])]),e._v(" and "),s("em",[s("strong",[e._v("description")])]),e._v(' to edit either of these properties. When you are done editing, click "done editing" to save changes.')]),e._v(" "),s("p",[s("img",{attrs:{src:r(613),alt:"Edit Group Details"}})]),e._v(" "),s("h3",{attrs:{id:"group-managers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#group-managers"}},[e._v("#")]),e._v(" Group Managers")]),e._v(" "),s("p",[e._v("Group managers can add and remove members and other managers to the group. Managers also share the owner and reader privileges assigned to the group.")]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),s("p",[e._v("You cannot remove yourself as a manager from the current group")])]),e._v(" "),s("p",[s("img",{attrs:{src:r(614),alt:"Managers"}})]),e._v(" "),s("h4",{attrs:{id:"add-managers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-managers"}},[e._v("#")]),e._v(" Add Managers")]),e._v(" "),s("p",[e._v("To add managers to a group, click on the "),s("em",[s("strong",[e._v("+ member")])]),e._v(" button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(" in the top right corner.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(615),alt:"Available Managers"}})]),e._v(" "),s("p",[e._v("In the "),s("em",[s("strong",[e._v("Add members")])]),e._v(' dialogue, select the desired permissions next to the name of the member or members you would like to add to the group. The member icon with a shield, as shown above the check box outlined in red below, represents a manager for this group. When you are finished selecting member permissions click "apply".')]),e._v(" "),s("p",[s("img",{attrs:{src:r(616),alt:"Available Managers"}})]),e._v(" "),s("h4",{attrs:{id:"remove-managers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#remove-managers"}},[e._v("#")]),e._v(" Remove Managers")]),e._v(" "),s("p",[e._v("Group managers can be removed from the group by clicking on the "),s("em",[s("strong",[e._v("remove icon")])]),e._v(".")]),e._v(" "),s("p",[s("img",{attrs:{src:r(617),alt:"Remove Managers"}})]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),s("p",[e._v("You cannot remove yourself as a manager from the current group")])]),e._v(" "),s("h4",{attrs:{id:"reassign-manager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reassign-manager"}},[e._v("#")]),e._v(" Reassign Manager")]),e._v(" "),s("p",[e._v("Managers can be reassigned as a group member by clicking the "),s("em",[s("strong",[e._v("change role")])]),e._v(" button.")]),e._v(" "),s("p",[e._v("When a role is changed from manager to member, the list is re-sorted to place the member beneath existing managers in the list.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(618),alt:"Reassign as member"}})]),e._v(" "),s("h3",{attrs:{id:"group-members"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#group-members"}},[e._v("#")]),e._v(" Group Members")]),e._v(" "),s("p",[e._v("Group members share the owner and reader privileges assigned to the group.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(619),alt:"Members"}})]),e._v(" "),s("h4",{attrs:{id:"add-members"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-members"}},[e._v("#")]),e._v(" Add Members")]),e._v(" "),s("p",[e._v("To add members to a group, click on the "),s("em",[s("strong",[e._v("+ member")])]),e._v(" button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(" in the top right corner.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(620),alt:"Available Managers"}})]),e._v(" "),s("p",[e._v("In the "),s("em",[s("strong",[e._v("Add members")])]),e._v(" dialogue, select the desired permissions next to the name of the member or members you would like to add to the group. The "),s("em",[e._v("member icon without a shield")]),e._v(", as shown above the check box outlined in red below, represents a member for this group. When you are finished selecting member permissions click "),s("em",[s("strong",[e._v("apply")])]),e._v(".")]),e._v(" "),s("p",[s("img",{attrs:{src:r(621),alt:"Available Managers"}})]),e._v(" "),s("h4",{attrs:{id:"remove-members"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#remove-members"}},[e._v("#")]),e._v(" Remove Members")]),e._v(" "),s("p",[e._v("Group members can be removed from the group by clicking on the remove icon.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(622),alt:"Remove Members"}})]),e._v(" "),s("h4",{attrs:{id:"reassign-member"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reassign-member"}},[e._v("#")]),e._v(" Reassign Member")]),e._v(" "),s("p",[e._v("Members can be reassigned as a group manager by clicking "),s("em",[s("strong",[e._v("change role")])]),e._v(" button.")]),e._v(" "),s("p",[e._v("When a role is changed from member to manager, the list is re-sorted to place the new manager above existing members in the list.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(623),alt:"Reassign as manager"}})]),e._v(" "),s("h3",{attrs:{id:"saving-the-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#saving-the-group"}},[e._v("#")]),e._v(" Saving the Group")]),e._v(" "),s("p",[e._v("Changes to Groups can be saved by clicking on the save button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(" in the top right corner.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(624),alt:"Save User Group"}})])])}),[],!1,null,null,null);s.default=t.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{587:function(e,s,r){e.exports=r.p+"assets/img/users-and-groups.aeb260d8.png"},588:function(e,s,r){e.exports=r.p+"assets/img/users-groups.5fc9d7ab.png"},589:function(e,s,r){e.exports=r.p+"assets/img/create-new-group.1c2d8509.png"},590:function(e,s,r){e.exports=r.p+"assets/img/groups-add-subgroup.ee27cd27.png"},591:function(e,s,r){e.exports=r.p+"assets/img/groups-subgroup-indicators.d2f09e52.png"},592:function(e,s,r){e.exports=r.p+"assets/img/user-group-details.ffa7b5c4.png"},593:function(e,s,r){e.exports=r.p+"assets/img/groups-edit-details.b93902fe.png"},594:function(e,s,r){e.exports=r.p+"assets/img/managers.e62b3a9a.png"},595:function(e,s,r){e.exports=r.p+"assets/img/add-managers.847493a2.png"},596:function(e,s,r){e.exports=r.p+"assets/img/available-managers.6dc6e2de.png"},597:function(e,s,r){e.exports=r.p+"assets/img/remove-managers.3df290e2.png"},598:function(e,s,r){e.exports=r.p+"assets/img/reassign-as-member.df4c0f56.png"},599:function(e,s,r){e.exports=r.p+"assets/img/members.a21a128f.png"},600:function(e,s,r){e.exports=r.p+"assets/img/add-members.847493a2.png"},601:function(e,s,r){e.exports=r.p+"assets/img/available-members.dcb0e42e.png"},602:function(e,s,r){e.exports=r.p+"assets/img/remove.c0077c88.png"},603:function(e,s,r){e.exports=r.p+"assets/img/reassign-as-manager.ea67d221.png"},604:function(e,s,r){e.exports=r.p+"assets/img/save-user-group.2a9b7910.png"},667:function(e,s,r){"use strict";r.r(s);var a=r(69),t=Object(a.a)({},(function(){var e=this,s=e._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"user-group-management"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#user-group-management"}},[e._v("#")]),e._v(" User Group Management")]),e._v(" "),s("p",[e._v("In the CaSS authoring environment, user groups allow for multiple users to assume a single shared 'identity'. Members of a group are granted access to any CaSS object that the group has been explicitly assigned.")]),e._v(" "),s("p",[e._v("Subgroups can be created within Groups to further organize and define access to CaSS objects for multiple users.")]),e._v(" "),s("h2",{attrs:{id:"accessing-the-cat-user-group-manager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#accessing-the-cat-user-group-manager"}},[e._v("#")]),e._v(" Accessing the CAT User Group Manager")]),e._v(" "),s("p",[s("strong",[e._v("Important: To access the CAT user group manager, you must be logged into the CAT application.")])]),e._v(" "),s("p",[e._v("The CAT user group manager can be accessed at any time by selecting the "),s("em",[s("strong",[e._v("users and groups")])]),e._v(" icon on the lower left corner of the navigation menu.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(587),alt:"Users and groups"}})]),e._v(" "),s("p",[s("strong",[e._v("CAT User Group Manager - Navigation Menu - Users and Groups")])]),e._v(" "),s("p",[e._v("The "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(" list contains options for creating a new group, viewing group members, and accessing existing groups.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(588),alt:"Users groups"}})]),e._v(" "),s("p",[e._v("To view a list of all group members, click on "),s("em",[s("strong",[e._v("Member List")])]),e._v(" under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(". This only lists users who are already within a group.")]),e._v(" "),s("h2",{attrs:{id:"creating-a-new-user-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-user-group"}},[e._v("#")]),e._v(" Creating a New User Group")]),e._v(" "),s("p",[e._v("To create a new group, click on the "),s("em",[s("strong",[e._v("create new group")])]),e._v(" button under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(".")]),e._v(" "),s("p",[s("img",{attrs:{src:r(589),alt:"Create new group"}})]),e._v(" "),s("p",[e._v("A new group is created with a default name and description.")]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),s("p",[e._v("There may be noticeable processing time when creating a new group. CAT user groups are assigned identity keys that must be generated at creation time. This process may take several seconds.")])]),e._v(" "),s("h2",{attrs:{id:"creating-a-new-sub-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-sub-group"}},[e._v("#")]),e._v(" Creating a New Sub-Group")]),e._v(" "),s("p",[e._v("To add a sub-group to a currently open group, click on the "),s("em",[s("strong",[e._v("add sub-group")])]),e._v(" button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(".\n"),s("em",[e._v("Sub-groups")]),e._v(" can be created within "),s("em",[e._v("Groups")]),e._v(" to further organize and define access to CaSS objects for multiple users.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(590),alt:"Create new sub-group"}})]),e._v(" "),s("p",[e._v("A new sub-group is created with a default name and description. The path of the group and the listing under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(" indicate the parent of the sub-group.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(591),alt:"Sub-group Indicators"}})]),e._v(" "),s("p",[e._v("The actions for managing users and editing groups apply to sub-groups as well.")]),e._v(" "),s("h2",{attrs:{id:"managing-a-user-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#managing-a-user-group"}},[e._v("#")]),e._v(" Managing a User Group")]),e._v(" "),s("p",[e._v("To access existing groups in the current CAT instance, click on the group name under "),s("em",[s("strong",[e._v("My User Groups")])]),e._v(" to the left of the "),s("em",[s("strong",[e._v("Group Details")])]),e._v(".")]),e._v(" "),s("p",[s("em",[e._v("Group Details")]),e._v(" show the name, description, and a list of members within the group.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(592),alt:"User Group Details"}})]),e._v(" "),s("p",[e._v("Click on the edit icon next to the "),s("em",[s("strong",[e._v("name")])]),e._v(" and "),s("em",[s("strong",[e._v("description")])]),e._v(' to edit either of these properties. When you are done editing, click "done editing" to save changes.')]),e._v(" "),s("p",[s("img",{attrs:{src:r(593),alt:"Edit Group Details"}})]),e._v(" "),s("h3",{attrs:{id:"group-managers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#group-managers"}},[e._v("#")]),e._v(" Group Managers")]),e._v(" "),s("p",[e._v("Group managers can add and remove members and other managers to the group. Managers also share the owner and reader privileges assigned to the group.")]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),s("p",[e._v("You cannot remove yourself as a manager from the current group")])]),e._v(" "),s("p",[s("img",{attrs:{src:r(594),alt:"Managers"}})]),e._v(" "),s("h4",{attrs:{id:"add-managers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-managers"}},[e._v("#")]),e._v(" Add Managers")]),e._v(" "),s("p",[e._v("To add managers to a group, click on the "),s("em",[s("strong",[e._v("+ member")])]),e._v(" button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(" in the top right corner.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(595),alt:"Available Managers"}})]),e._v(" "),s("p",[e._v("In the "),s("em",[s("strong",[e._v("Add members")])]),e._v(' dialogue, select the desired permissions next to the name of the member or members you would like to add to the group. The member icon with a shield, as shown above the check box outlined in red below, represents a manager for this group. When you are finished selecting member permissions click "apply".')]),e._v(" "),s("p",[s("img",{attrs:{src:r(596),alt:"Available Managers"}})]),e._v(" "),s("h4",{attrs:{id:"remove-managers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#remove-managers"}},[e._v("#")]),e._v(" Remove Managers")]),e._v(" "),s("p",[e._v("Group managers can be removed from the group by clicking on the "),s("em",[s("strong",[e._v("remove icon")])]),e._v(".")]),e._v(" "),s("p",[s("img",{attrs:{src:r(597),alt:"Remove Managers"}})]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),s("p",[e._v("You cannot remove yourself as a manager from the current group")])]),e._v(" "),s("h4",{attrs:{id:"reassign-manager"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reassign-manager"}},[e._v("#")]),e._v(" Reassign Manager")]),e._v(" "),s("p",[e._v("Managers can be reassigned as a group member by clicking the "),s("em",[s("strong",[e._v("change role")])]),e._v(" button.")]),e._v(" "),s("p",[e._v("When a role is changed from manager to member, the list is re-sorted to place the member beneath existing managers in the list.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(598),alt:"Reassign as member"}})]),e._v(" "),s("h3",{attrs:{id:"group-members"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#group-members"}},[e._v("#")]),e._v(" Group Members")]),e._v(" "),s("p",[e._v("Group members share the owner and reader privileges assigned to the group.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(599),alt:"Members"}})]),e._v(" "),s("h4",{attrs:{id:"add-members"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-members"}},[e._v("#")]),e._v(" Add Members")]),e._v(" "),s("p",[e._v("To add members to a group, click on the "),s("em",[s("strong",[e._v("+ member")])]),e._v(" button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(" in the top right corner.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(600),alt:"Available Managers"}})]),e._v(" "),s("p",[e._v("In the "),s("em",[s("strong",[e._v("Add members")])]),e._v(" dialogue, select the desired permissions next to the name of the member or members you would like to add to the group. The "),s("em",[e._v("member icon without a shield")]),e._v(", as shown above the check box outlined in red below, represents a member for this group. When you are finished selecting member permissions click "),s("em",[s("strong",[e._v("apply")])]),e._v(".")]),e._v(" "),s("p",[s("img",{attrs:{src:r(601),alt:"Available Managers"}})]),e._v(" "),s("h4",{attrs:{id:"remove-members"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#remove-members"}},[e._v("#")]),e._v(" Remove Members")]),e._v(" "),s("p",[e._v("Group members can be removed from the group by clicking on the remove icon.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(602),alt:"Remove Members"}})]),e._v(" "),s("h4",{attrs:{id:"reassign-member"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reassign-member"}},[e._v("#")]),e._v(" Reassign Member")]),e._v(" "),s("p",[e._v("Members can be reassigned as a group manager by clicking "),s("em",[s("strong",[e._v("change role")])]),e._v(" button.")]),e._v(" "),s("p",[e._v("When a role is changed from member to manager, the list is re-sorted to place the new manager above existing members in the list.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(603),alt:"Reassign as manager"}})]),e._v(" "),s("h3",{attrs:{id:"saving-the-group"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#saving-the-group"}},[e._v("#")]),e._v(" Saving the Group")]),e._v(" "),s("p",[e._v("Changes to Groups can be saved by clicking on the save button under "),s("em",[s("strong",[e._v("Group actions")])]),e._v(" in the top right corner.")]),e._v(" "),s("p",[s("img",{attrs:{src:r(604),alt:"Save User Group"}})])])}),[],!1,null,null,null);s.default=t.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/14.4d1f45ec.js.gz b/docs/assets/js/14.4d1f45ec.js.gz new file mode 100644 index 000000000..5af3526e3 Binary files /dev/null and b/docs/assets/js/14.4d1f45ec.js.gz differ diff --git a/docs/assets/js/14.91d7bcdb.js.gz b/docs/assets/js/14.91d7bcdb.js.gz deleted file mode 100644 index 93f29ae6e..000000000 Binary files a/docs/assets/js/14.91d7bcdb.js.gz and /dev/null differ diff --git a/docs/assets/js/21.63808688.js b/docs/assets/js/21.a375b56a.js similarity index 97% rename from docs/assets/js/21.63808688.js rename to docs/assets/js/21.a375b56a.js index 0bb965876..ee66a28f3 100644 --- a/docs/assets/js/21.63808688.js +++ b/docs/assets/js/21.a375b56a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{494:function(A,e){A.exports="data:image/png;base64,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"},495:function(A,e){A.exports="data:image/png;base64,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"},496:function(A,e){A.exports="data:image/png;base64,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"},497:function(A,e){A.exports="data:image/png;base64,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"},498:function(A,e){A.exports="data:image/png;base64,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"},499:function(A,e,t){A.exports=t.p+"assets/img/assertion-editor-view-evidence.2a10ad59.png"},500:function(A,e){A.exports="data:image/png;base64,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"},501:function(A,e,t){A.exports=t.p+"assets/img/assertion-editor-add-badge.006cd0ad.png"},502:function(A,e,t){A.exports=t.p+"assets/img/assertion-editor-view-badge.87a81617.png"},654:function(A,e,t){"use strict";t.r(e);var r=t(69),a=Object(r.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"creating-and-editing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-and-editing"}},[A._v("#")]),A._v(" Creating and Editing")]),A._v(" "),e("p",[e("strong",[A._v("Assertion management is only available to logged in users, ensure you are logged in to the application before continuing.")])]),A._v(" "),e("h2",{attrs:{id:"enabling-assertion-management"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#enabling-assertion-management"}},[A._v("#")]),A._v(" Enabling Assertion Management")]),A._v(" "),e("p",[A._v("Open any framework and you should be presented with a "),e("em",[A._v("manage assertions")]),A._v(" button in the top toolbar")]),A._v(" "),e("p",[e("img",{attrs:{src:t(494),alt:"Manage Assertions Button"}})]),A._v(" "),e("p",[A._v("To return to the framework editing mode, simply press the "),e("em",[A._v("stop managing assertions")]),A._v(" button in the top toolbar")]),A._v(" "),e("p",[e("img",{attrs:{src:t(495),alt:"Stop Managing Assertions Button"}})]),A._v(" "),e("h2",{attrs:{id:"choosing-a-subject"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#choosing-a-subject"}},[A._v("#")]),A._v(" Choosing a Subject")]),A._v(" "),e("p",[A._v("You can choose to make assertions about yourself, or another user in the system. In order to change the subject of your assertions, click the "),e("em",[A._v("myself")]),A._v(" button and select a new user from the resulting dialog.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(496),alt:"Select Assertion Subject Button"}})]),A._v(" "),e("h2",{attrs:{id:"creating-an-assertion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-an-assertion"}},[A._v("#")]),A._v(" Creating an Assertion")]),A._v(" "),e("p",[A._v("Once in the assertion management mode, the competencies in the framework will display new controls to create either a positive or negative assertion, indicating that a user can or cannot perform the competency respectively.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(497),alt:"Assertion Editor Controls"}})]),A._v(" "),e("p",[A._v("Clicking the "),e("em",[A._v("I can")]),A._v(" button will generate a positive assertion for that competency and display an input field allowing you to provide evidence in the form of text or a link to support the assertion. Press "),e("em",[A._v("enter")]),A._v(" on your keyboard after entering the evidence into the input field to attach it to your assertion.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(498),alt:"Assertion Editor Add Evidence"}})]),A._v(" "),e("p",[A._v("The evidence will appear in a section underneath the input field, along with a button to delete that evidence if desired.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(499),alt:"Assertion Editor View Evidence"}})]),A._v(" "),e("h2",{attrs:{id:"deleting-an-assertion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#deleting-an-assertion"}},[A._v("#")]),A._v(" Deleting an Assertion")]),A._v(" "),e("p",[A._v("To delete an assertion, simply click the same button that was used to create the assertion. In this case, the "),e("em",[A._v("I can")]),A._v(" button.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(500),alt:"Assertion Editor Remove Assertion"}})]),A._v(" "),e("h2",{attrs:{id:"adding-a-badge"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-badge"}},[A._v("#")]),A._v(" Adding a Badge")]),A._v(" "),e("p",[A._v("You can add a badge to a positive assertion by clicking the "),e("em",[A._v("add badge")]),A._v(" button.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(501),alt:"Assertion Editor Add Badge"}})]),A._v(" "),e("p",[A._v("This will generate a url for the badge that can be viewed by clicking the "),e("em",[A._v("view badge")]),A._v(" button and then shared.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(502),alt:"Assertion Editor View Badge"}})])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{474:function(A,e){A.exports="data:image/png;base64,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"},475:function(A,e){A.exports="data:image/png;base64,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"},476:function(A,e){A.exports="data:image/png;base64,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"},477:function(A,e){A.exports="data:image/png;base64,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"},478:function(A,e){A.exports="data:image/png;base64,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"},479:function(A,e,t){A.exports=t.p+"assets/img/assertion-editor-view-evidence.2a10ad59.png"},480:function(A,e){A.exports="data:image/png;base64,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"},481:function(A,e,t){A.exports=t.p+"assets/img/assertion-editor-add-badge.006cd0ad.png"},482:function(A,e,t){A.exports=t.p+"assets/img/assertion-editor-view-badge.87a81617.png"},653:function(A,e,t){"use strict";t.r(e);var r=t(69),a=Object(r.a)({},(function(){var A=this,e=A._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":A.$parent.slotKey}},[e("h1",{attrs:{id:"creating-and-editing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-and-editing"}},[A._v("#")]),A._v(" Creating and Editing")]),A._v(" "),e("p",[e("strong",[A._v("Assertion management is only available to logged in users, ensure you are logged in to the application before continuing.")])]),A._v(" "),e("h2",{attrs:{id:"enabling-assertion-management"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#enabling-assertion-management"}},[A._v("#")]),A._v(" Enabling Assertion Management")]),A._v(" "),e("p",[A._v("Open any framework and you should be presented with a "),e("em",[A._v("manage assertions")]),A._v(" button in the top toolbar")]),A._v(" "),e("p",[e("img",{attrs:{src:t(474),alt:"Manage Assertions Button"}})]),A._v(" "),e("p",[A._v("To return to the framework editing mode, simply press the "),e("em",[A._v("stop managing assertions")]),A._v(" button in the top toolbar")]),A._v(" "),e("p",[e("img",{attrs:{src:t(475),alt:"Stop Managing Assertions Button"}})]),A._v(" "),e("h2",{attrs:{id:"choosing-a-subject"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#choosing-a-subject"}},[A._v("#")]),A._v(" Choosing a Subject")]),A._v(" "),e("p",[A._v("You can choose to make assertions about yourself, or another user in the system. In order to change the subject of your assertions, click the "),e("em",[A._v("myself")]),A._v(" button and select a new user from the resulting dialog.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(476),alt:"Select Assertion Subject Button"}})]),A._v(" "),e("h2",{attrs:{id:"creating-an-assertion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-an-assertion"}},[A._v("#")]),A._v(" Creating an Assertion")]),A._v(" "),e("p",[A._v("Once in the assertion management mode, the competencies in the framework will display new controls to create either a positive or negative assertion, indicating that a user can or cannot perform the competency respectively.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(477),alt:"Assertion Editor Controls"}})]),A._v(" "),e("p",[A._v("Clicking the "),e("em",[A._v("I can")]),A._v(" button will generate a positive assertion for that competency and display an input field allowing you to provide evidence in the form of text or a link to support the assertion. Press "),e("em",[A._v("enter")]),A._v(" on your keyboard after entering the evidence into the input field to attach it to your assertion.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(478),alt:"Assertion Editor Add Evidence"}})]),A._v(" "),e("p",[A._v("The evidence will appear in a section underneath the input field, along with a button to delete that evidence if desired.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(479),alt:"Assertion Editor View Evidence"}})]),A._v(" "),e("h2",{attrs:{id:"deleting-an-assertion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#deleting-an-assertion"}},[A._v("#")]),A._v(" Deleting an Assertion")]),A._v(" "),e("p",[A._v("To delete an assertion, simply click the same button that was used to create the assertion. In this case, the "),e("em",[A._v("I can")]),A._v(" button.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(480),alt:"Assertion Editor Remove Assertion"}})]),A._v(" "),e("h2",{attrs:{id:"adding-a-badge"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-badge"}},[A._v("#")]),A._v(" Adding a Badge")]),A._v(" "),e("p",[A._v("You can add a badge to a positive assertion by clicking the "),e("em",[A._v("add badge")]),A._v(" button.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(481),alt:"Assertion Editor Add Badge"}})]),A._v(" "),e("p",[A._v("This will generate a url for the badge that can be viewed by clicking the "),e("em",[A._v("view badge")]),A._v(" button and then shared.")]),A._v(" "),e("p",[e("img",{attrs:{src:t(482),alt:"Assertion Editor View Badge"}})])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/21.63808688.js.gz b/docs/assets/js/21.a375b56a.js.gz similarity index 84% rename from docs/assets/js/21.63808688.js.gz rename to docs/assets/js/21.a375b56a.js.gz index e6dcde143..e920e1731 100644 Binary files a/docs/assets/js/21.63808688.js.gz and b/docs/assets/js/21.a375b56a.js.gz differ diff --git a/docs/assets/js/22.865eaac5.js.gz b/docs/assets/js/22.865eaac5.js.gz deleted file mode 100644 index 2de593d38..000000000 Binary files a/docs/assets/js/22.865eaac5.js.gz and /dev/null differ diff --git a/docs/assets/js/22.865eaac5.js b/docs/assets/js/22.d41311a7.js similarity index 93% rename from docs/assets/js/22.865eaac5.js rename to docs/assets/js/22.d41311a7.js index f7bfcd941..302a799b2 100644 --- a/docs/assets/js/22.865eaac5.js +++ b/docs/assets/js/22.d41311a7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{449:function(t,e,o){t.exports=o.p+"assets/img/login-button.8cb57ec8.png"},579:function(t,e,o){t.exports=o.p+"assets/img/welcome-page.94a4efed.png"},580:function(t,e,o){t.exports=o.p+"assets/img/expand-menu-button.c4d95538.png"},581:function(t,e,o){t.exports=o.p+"assets/img/expanded-menu.ad599fd6.png"},582:function(t,e,o){t.exports=o.p+"assets/img/collapse-menu-button.b0e4f0c1.png"},583:function(t,e){t.exports="data:image/png;base64,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"},584:function(t,e,o){t.exports=o.p+"assets/img/create-account-button.86c535d4.png"},585:function(t,e,o){t.exports=o.p+"assets/img/create-account-submit-button.99116cc8.png"},586:function(t,e,o){t.exports=o.p+"assets/img/helpful-links.0dd05cff.png"},665:function(t,e,o){"use strict";o.r(e);var n=o(69),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"getting-started"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),e("h2",{attrs:{id:"about"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about"}},[t._v("#")]),t._v(" About")]),t._v(" "),e("p",[t._v("Welcome to the documentation for "),e("strong",[t._v("CaSS Authoring Tools")]),t._v(" - an open source collaborative interface for authoring and managing competency frameworks.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Collaborate with your team")]),t._v(" "),e("ul",[e("li",[t._v("CaSS Authoring Tools supports user and group access to your authored competency frameworks.")])])]),t._v(" "),e("li",[e("strong",[t._v("Customized Competency Properties")]),t._v(" "),e("ul",[e("li",[t._v("Our Authoring Tools support your organization's unique needs. Use our custom competency properties to customize the abilities of the authoring tool.")])])]),t._v(" "),e("li",[e("strong",[t._v("Work with existing frameworks")]),t._v(" "),e("ul",[e("li",[t._v("CaSS can import and export a variety of file format and types. Start working with your existing data.")])])])]),t._v(" "),e("p",[t._v("This document details the functionality of CaSS Authoring Tools and includes detailed instructions for use. If you are looking for help with a specific function of CaSS Authoring Tools, you can navigate to the appropriate section by using the table of contents above. A list of helpful resources and links is also included at the end of this page.")]),t._v(" "),e("h2",{attrs:{id:"welcome-screen"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#welcome-screen"}},[t._v("#")]),t._v(" Welcome Screen")]),t._v(" "),e("p",[t._v("When first visiting CaSS Authoring Tools, you will be presented with the\n"),e("strong",[t._v("Welcome Screen")]),t._v(" which offers simple instructions for getting started.\nMore detailed instructions on how CaSS Authoring Tools can be used are\nincluded in this User Guide.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(579),alt:"Welcome Page"}})]),t._v(" "),e("h2",{attrs:{id:"application-navigation-menu"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#application-navigation-menu"}},[t._v("#")]),t._v(" Application Navigation Menu")]),t._v(" "),e("p",[t._v("The CaSS Authoring Tool navigation menu is used to access the different\nfunctionality modules within the application.  It can be viewed and used\nin two specific ways.")]),t._v(" "),e("h3",{attrs:{id:"expanded-navigation-menu"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#expanded-navigation-menu"}},[t._v("#")]),t._v(" Expanded Navigation Menu")]),t._v(" "),e("p",[t._v("The expanded navigation menu can be accessed by clicking on the expand\nmenu icon on the top right corner of the screen.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(580),alt:"Expand Menu Button"}})]),t._v(" "),e("p",[e("img",{attrs:{src:o(581),alt:"Expanded Menu"}})]),t._v(" "),e("p",[t._v("Once expanded, the navigation menu displays links to the following\napplication areas:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Application Login")]),t._v("  - Login to the application")]),t._v(" "),e("li",[e("strong",[t._v("Create New")]),t._v(" - Dropdown menu for creating a new Framework, Directory, or Taxonomy")]),t._v(" "),e("li",[e("strong",[t._v("Competencies & Frameworks")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Frameworks")]),t._v(" - Competency framework search")]),t._v(" "),e("li",[e("em",[t._v("Import")]),t._v(" - Import of competency frameworks")]),t._v(" "),e("li",[e("em",[t._v("Crosswalk Frameworks")]),t._v(" - Dual competency framework\nalignment/relationships")]),t._v(" "),e("li",[e("em",[t._v("Documentation")]),t._v(" - This CaSS Authoring Tools User Guide")])])]),t._v(" "),e("li",[e("strong",[t._v("My Directories")]),t._v(" "),e("ul",[e("li",[t._v("A list of Directories that you have access to")])])]),t._v(" "),e("li",[e("strong",[t._v("Taxonomy")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Taxonomies")]),t._v(" - Taxonomy search")]),t._v(" "),e("li",[e("em",[t._v("Import")]),t._v(" - Import of taxonomies")]),t._v(" "),e("li",[e("em",[t._v("Documentation")]),t._v(" - This CaSS Authoring Tools User Guide")])])]),t._v(" "),e("li",[e("strong",[t._v("Configuration")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Configurations")]),t._v(" - Configuration management")]),t._v(" "),e("li",[e("em",[t._v("Plugins")]),t._v(" - Plugin management")])])]),t._v(" "),e("li",[e("strong",[t._v("Users and Groups")]),t._v(" - User group management ("),e("em",[t._v("this option only appears if you are logged into the application")]),t._v(")")])]),t._v(" "),e("h3",{attrs:{id:"collapsed-navigation-menu"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#collapsed-navigation-menu"}},[t._v("#")]),t._v(" Collapsed Navigation Menu")]),t._v(" "),e("p",[e("img",{attrs:{src:o(582),alt:"Collapse Menu"}})]),t._v(" "),e("p",[t._v("The navigation menu can be collapsed by clicking on the collapse menu icon on the\nupper right hand corner of the expanded navigation menu.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(583),alt:"Collapsed Menu"}})]),t._v(" "),e("p",[t._v("Once collapsed, the navigation menu displays links to the following\napplication areas:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Application Login")]),t._v(" - Login to the application")]),t._v(" "),e("li",[e("strong",[t._v("Frameworks")]),t._v(" - Competency framework search")]),t._v(" "),e("li",[e("strong",[t._v("Crosswalk Frameworks")]),t._v(" - Dual competency framework alignment/relationships")]),t._v(" "),e("li",[e("strong",[t._v("Directories")]),t._v(" - Direcotires available to user")]),t._v(" "),e("li",[e("strong",[t._v("Taxonomies")]),t._v(" - Taxonomy search")]),t._v(" "),e("li",[e("strong",[t._v("Configurations")]),t._v(" - Configuration management")]),t._v(" "),e("li",[e("strong",[t._v("Plugins")]),t._v(" - Plugin management")]),t._v(" "),e("li",[e("strong",[t._v("Users and Groups")]),t._v(" - User group management ("),e("em",[t._v("this option only appears if you are logged into the application")]),t._v(")")])]),t._v(" "),e("h2",{attrs:{id:"application-login"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#application-login"}},[t._v("#")]),t._v(" Application Login")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("This section is not applicable to Credential Engine instances of CAT.")])]),t._v(" "),e("p",[t._v("By default, most CAT functionality is available without being logged in.\nYou can search for, create, and manage public frameworks, competencies,\nand other CaSS data. Some tools, however, will not be available until\nafter going through the login process. Accessing secure CaSS data,\nsecuring your own CaSS data, and explicitly granting access and\npermissions to owned data all requires you to be logged into the\nenvironment. More details about managing user groups and data\npermissions can be found in the corresponding sections.")]),t._v(" "),e("p",[t._v("The "),e("em",[e("strong",[t._v("login button")])]),t._v(" can be accessed through the application navigation\nmenu.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(449),alt:"CAT Navigation Menu - Login Button"}})]),t._v(" "),e("h2",{attrs:{id:"creating-an-account"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-an-account"}},[t._v("#")]),t._v(" Creating an Account")]),t._v(" "),e("p",[t._v("From the landing page users have the option to login or create a new\naccount to access the CaSS Authoring Tool. At the login page users have\nthe option to select "),e("em",[e("strong",[t._v("create account")])]),t._v(" shown below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(584),alt:"CAT Login - Create Account Button"}})]),t._v(" "),e("p",[t._v("From here, users will be prompted to input basic information required to\nregister their account with the CaSS Authoring Tool.")]),t._v(" "),e("p",[t._v("Once users have successfully entered the required information, they can\nhit "),e("em",[e("strong",[t._v("create")])]),t._v(" to begin the registration of their account. Once\nsuccessfully registered, you will be automatically logged into the\napplication.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(585),alt:"CAT Login - Create Account Submit Button"}})]),t._v(" "),e("h3",{attrs:{id:"logging-into-an-existing-account"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging-into-an-existing-account"}},[t._v("#")]),t._v(" Logging into an Existing Account")]),t._v(" "),e("p",[t._v("You can login with existing accounts by filling out the appropriate\nfields on the login form and clicking the "),e("em",[e("strong",[t._v("login")])]),t._v(" button.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(449),alt:"CAT Login - Login Button"}})]),t._v(" "),e("h2",{attrs:{id:"helpful-links"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#helpful-links"}},[t._v("#")]),t._v(" Helpful Links")]),t._v(" "),e("p",[t._v("On the right side bar of the CaSS Authoring Tools welcome page you will\nfind a list of documentation, resources, example framework imports,\noptions for getting in touch with the CaSS community, and legacy\napplications of CaSS.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(586),alt:"CAT Welcome - Helpful Links "}})]),t._v(" "),e("h2",{attrs:{id:"get-in-touch"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-in-touch"}},[t._v("#")]),t._v(" Get in touch")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://www.google.com/url?q=https://docs.google.com/a/eduworks.com/forms/viewform?bc%3Dtransparent%26embedded%3Dtrue%26f%3DArial%25252C%252BVerdana%25252C%252Bsans-serif%26hl%3Den%26htc%3D%252523666666%26id%3D1BMaboapV0IaS8iGnCJut2obPZ9y3CWkxXuvy-7krcgE%26lc%3D%252523003965%26pli%3D1%26tc%3D%252523444444%26ttl%3D0&sa=D&ust=1603207897946000&usg=AOvVaw3DXisffX2tTcQQH_sM4J67",target:"_blank",rel:"noopener noreferrer"}},[t._v("Join the Slack Channel"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"mailto:cass@eduworks.com"}},[t._v("Email us")])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{449:function(t,e,o){t.exports=o.p+"assets/img/login-button.8cb57ec8.png"},575:function(t,e,o){t.exports=o.p+"assets/img/welcome-page.94a4efed.png"},576:function(t,e,o){t.exports=o.p+"assets/img/expand-menu-button.c4d95538.png"},577:function(t,e,o){t.exports=o.p+"assets/img/expanded-menu.ad599fd6.png"},578:function(t,e,o){t.exports=o.p+"assets/img/collapse-menu-button.b0e4f0c1.png"},579:function(t,e){t.exports="data:image/png;base64,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"},580:function(t,e,o){t.exports=o.p+"assets/img/create-account-button.86c535d4.png"},581:function(t,e,o){t.exports=o.p+"assets/img/create-account-submit-button.99116cc8.png"},582:function(t,e,o){t.exports=o.p+"assets/img/helpful-links.0dd05cff.png"},664:function(t,e,o){"use strict";o.r(e);var n=o(69),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"getting-started"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),e("h2",{attrs:{id:"about"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about"}},[t._v("#")]),t._v(" About")]),t._v(" "),e("p",[t._v("Welcome to the documentation for "),e("strong",[t._v("CaSS Authoring Tools")]),t._v(" - an open source collaborative interface for authoring and managing competency frameworks.")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Collaborate with your team")]),t._v(" "),e("ul",[e("li",[t._v("CaSS Authoring Tools supports user and group access to your authored competency frameworks.")])])]),t._v(" "),e("li",[e("strong",[t._v("Customized Competency Properties")]),t._v(" "),e("ul",[e("li",[t._v("Our Authoring Tools support your organization's unique needs. Use our custom competency properties to customize the abilities of the authoring tool.")])])]),t._v(" "),e("li",[e("strong",[t._v("Work with existing frameworks")]),t._v(" "),e("ul",[e("li",[t._v("CaSS can import and export a variety of file format and types. Start working with your existing data.")])])])]),t._v(" "),e("p",[t._v("This document details the functionality of CaSS Authoring Tools and includes detailed instructions for use. If you are looking for help with a specific function of CaSS Authoring Tools, you can navigate to the appropriate section by using the table of contents above. A list of helpful resources and links is also included at the end of this page.")]),t._v(" "),e("h2",{attrs:{id:"welcome-screen"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#welcome-screen"}},[t._v("#")]),t._v(" Welcome Screen")]),t._v(" "),e("p",[t._v("When first visiting CaSS Authoring Tools, you will be presented with the\n"),e("strong",[t._v("Welcome Screen")]),t._v(" which offers simple instructions for getting started.\nMore detailed instructions on how CaSS Authoring Tools can be used are\nincluded in this User Guide.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(575),alt:"Welcome Page"}})]),t._v(" "),e("h2",{attrs:{id:"application-navigation-menu"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#application-navigation-menu"}},[t._v("#")]),t._v(" Application Navigation Menu")]),t._v(" "),e("p",[t._v("The CaSS Authoring Tool navigation menu is used to access the different\nfunctionality modules within the application.  It can be viewed and used\nin two specific ways.")]),t._v(" "),e("h3",{attrs:{id:"expanded-navigation-menu"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#expanded-navigation-menu"}},[t._v("#")]),t._v(" Expanded Navigation Menu")]),t._v(" "),e("p",[t._v("The expanded navigation menu can be accessed by clicking on the expand\nmenu icon on the top right corner of the screen.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(576),alt:"Expand Menu Button"}})]),t._v(" "),e("p",[e("img",{attrs:{src:o(577),alt:"Expanded Menu"}})]),t._v(" "),e("p",[t._v("Once expanded, the navigation menu displays links to the following\napplication areas:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Application Login")]),t._v("  - Login to the application")]),t._v(" "),e("li",[e("strong",[t._v("Create New")]),t._v(" - Dropdown menu for creating a new Framework, Directory, or Taxonomy")]),t._v(" "),e("li",[e("strong",[t._v("Competencies & Frameworks")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Frameworks")]),t._v(" - Competency framework search")]),t._v(" "),e("li",[e("em",[t._v("Import")]),t._v(" - Import of competency frameworks")]),t._v(" "),e("li",[e("em",[t._v("Crosswalk Frameworks")]),t._v(" - Dual competency framework\nalignment/relationships")]),t._v(" "),e("li",[e("em",[t._v("Documentation")]),t._v(" - This CaSS Authoring Tools User Guide")])])]),t._v(" "),e("li",[e("strong",[t._v("My Directories")]),t._v(" "),e("ul",[e("li",[t._v("A list of Directories that you have access to")])])]),t._v(" "),e("li",[e("strong",[t._v("Taxonomy")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Taxonomies")]),t._v(" - Taxonomy search")]),t._v(" "),e("li",[e("em",[t._v("Import")]),t._v(" - Import of taxonomies")]),t._v(" "),e("li",[e("em",[t._v("Documentation")]),t._v(" - This CaSS Authoring Tools User Guide")])])]),t._v(" "),e("li",[e("strong",[t._v("Configuration")]),t._v(" "),e("ul",[e("li",[e("em",[t._v("Configurations")]),t._v(" - Configuration management")]),t._v(" "),e("li",[e("em",[t._v("Plugins")]),t._v(" - Plugin management")])])]),t._v(" "),e("li",[e("strong",[t._v("Users and Groups")]),t._v(" - User group management ("),e("em",[t._v("this option only appears if you are logged into the application")]),t._v(")")])]),t._v(" "),e("h3",{attrs:{id:"collapsed-navigation-menu"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#collapsed-navigation-menu"}},[t._v("#")]),t._v(" Collapsed Navigation Menu")]),t._v(" "),e("p",[e("img",{attrs:{src:o(578),alt:"Collapse Menu"}})]),t._v(" "),e("p",[t._v("The navigation menu can be collapsed by clicking on the collapse menu icon on the\nupper right hand corner of the expanded navigation menu.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(579),alt:"Collapsed Menu"}})]),t._v(" "),e("p",[t._v("Once collapsed, the navigation menu displays links to the following\napplication areas:")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Application Login")]),t._v(" - Login to the application")]),t._v(" "),e("li",[e("strong",[t._v("Frameworks")]),t._v(" - Competency framework search")]),t._v(" "),e("li",[e("strong",[t._v("Crosswalk Frameworks")]),t._v(" - Dual competency framework alignment/relationships")]),t._v(" "),e("li",[e("strong",[t._v("Directories")]),t._v(" - Direcotires available to user")]),t._v(" "),e("li",[e("strong",[t._v("Taxonomies")]),t._v(" - Taxonomy search")]),t._v(" "),e("li",[e("strong",[t._v("Configurations")]),t._v(" - Configuration management")]),t._v(" "),e("li",[e("strong",[t._v("Plugins")]),t._v(" - Plugin management")]),t._v(" "),e("li",[e("strong",[t._v("Users and Groups")]),t._v(" - User group management ("),e("em",[t._v("this option only appears if you are logged into the application")]),t._v(")")])]),t._v(" "),e("h2",{attrs:{id:"application-login"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#application-login"}},[t._v("#")]),t._v(" Application Login")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("This section is not applicable to Credential Engine instances of CAT.")])]),t._v(" "),e("p",[t._v("By default, most CAT functionality is available without being logged in.\nYou can search for, create, and manage public frameworks, competencies,\nand other CaSS data. Some tools, however, will not be available until\nafter going through the login process. Accessing secure CaSS data,\nsecuring your own CaSS data, and explicitly granting access and\npermissions to owned data all requires you to be logged into the\nenvironment. More details about managing user groups and data\npermissions can be found in the corresponding sections.")]),t._v(" "),e("p",[t._v("The "),e("em",[e("strong",[t._v("login button")])]),t._v(" can be accessed through the application navigation\nmenu.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(449),alt:"CAT Navigation Menu - Login Button"}})]),t._v(" "),e("h2",{attrs:{id:"creating-an-account"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-an-account"}},[t._v("#")]),t._v(" Creating an Account")]),t._v(" "),e("p",[t._v("From the landing page users have the option to login or create a new\naccount to access the CaSS Authoring Tool. At the login page users have\nthe option to select "),e("em",[e("strong",[t._v("create account")])]),t._v(" shown below.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(580),alt:"CAT Login - Create Account Button"}})]),t._v(" "),e("p",[t._v("From here, users will be prompted to input basic information required to\nregister their account with the CaSS Authoring Tool.")]),t._v(" "),e("p",[t._v("Once users have successfully entered the required information, they can\nhit "),e("em",[e("strong",[t._v("create")])]),t._v(" to begin the registration of their account. Once\nsuccessfully registered, you will be automatically logged into the\napplication.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(581),alt:"CAT Login - Create Account Submit Button"}})]),t._v(" "),e("h3",{attrs:{id:"logging-into-an-existing-account"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#logging-into-an-existing-account"}},[t._v("#")]),t._v(" Logging into an Existing Account")]),t._v(" "),e("p",[t._v("You can login with existing accounts by filling out the appropriate\nfields on the login form and clicking the "),e("em",[e("strong",[t._v("login")])]),t._v(" button.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(449),alt:"CAT Login - Login Button"}})]),t._v(" "),e("h2",{attrs:{id:"helpful-links"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#helpful-links"}},[t._v("#")]),t._v(" Helpful Links")]),t._v(" "),e("p",[t._v("On the right side bar of the CaSS Authoring Tools welcome page you will\nfind a list of documentation, resources, example framework imports,\noptions for getting in touch with the CaSS community, and legacy\napplications of CaSS.")]),t._v(" "),e("p",[e("img",{attrs:{src:o(582),alt:"CAT Welcome - Helpful Links "}})]),t._v(" "),e("h2",{attrs:{id:"get-in-touch"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-in-touch"}},[t._v("#")]),t._v(" Get in touch")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://www.google.com/url?q=https://docs.google.com/a/eduworks.com/forms/viewform?bc%3Dtransparent%26embedded%3Dtrue%26f%3DArial%25252C%252BVerdana%25252C%252Bsans-serif%26hl%3Den%26htc%3D%252523666666%26id%3D1BMaboapV0IaS8iGnCJut2obPZ9y3CWkxXuvy-7krcgE%26lc%3D%252523003965%26pli%3D1%26tc%3D%252523444444%26ttl%3D0&sa=D&ust=1603207897946000&usg=AOvVaw3DXisffX2tTcQQH_sM4J67",target:"_blank",rel:"noopener noreferrer"}},[t._v("Join the Slack Channel"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"mailto:cass@eduworks.com"}},[t._v("Email us")])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/22.d41311a7.js.gz b/docs/assets/js/22.d41311a7.js.gz new file mode 100644 index 000000000..d8cc34c57 Binary files /dev/null and b/docs/assets/js/22.d41311a7.js.gz differ diff --git a/docs/assets/js/26.b715c98e.js b/docs/assets/js/26.2cd05b7f.js similarity index 86% rename from docs/assets/js/26.b715c98e.js rename to docs/assets/js/26.2cd05b7f.js index 82b6c02f4..28b75a9cb 100644 --- a/docs/assets/js/26.b715c98e.js +++ b/docs/assets/js/26.2cd05b7f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{525:function(t,e,n){t.exports=n.p+"assets/img/configurations.63f74143.png"},526:function(t,e,n){t.exports=n.p+"assets/img/browser-default.25f6a9ff.png"},527:function(t,e,n){t.exports=n.p+"assets/img/view-manage-delete.5931810b.png"},528:function(t,e,n){t.exports=n.p+"assets/img/create-new-configuration.ea5e3e25.png"},529:function(t,e,n){t.exports=n.p+"assets/img/general-details.6aaad19b.png"},530:function(t,e,n){t.exports=n.p+"assets/img/save-configuration.23d35bf3.png"},656:function(t,e,n){"use strict";n.r(e);var a=n(69),i=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"configurations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configurations"}},[t._v("#")]),t._v(" Configurations")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("This section is not applicable to Credential Engine instances of CAT.")])]),t._v(" "),e("p",[t._v("Configurations control the way frameworks and competencies appear in the editor, as well as what properties,\nrelationships, and in some cases value types of properties and relationships that can be added to frameworks and competencies.")]),t._v(" "),e("p",[t._v("Configurations are set at the framework object. If a framework does not have a configuration assigned,\nthen the following priority is made to determine the correct configuration to apply to the display of the framework:")]),t._v(" "),e("ol",[e("li",[t._v("Browser default configuration")]),t._v(" "),e("li",[t._v("Instance default configuration")]),t._v(" "),e("li",[t._v("CaSS nomenclature fallback")])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("Only a single configuration can be set to the instance default at any given time. In order to change the instance default, the owner of the current instance default must toggle the default switch off. At that point, another configuration can be set as the instance default.")])]),t._v(" "),e("h2",{attrs:{id:"accessing-the-cat-configuration-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#accessing-the-cat-configuration-manager"}},[t._v("#")]),t._v(" Accessing the CAT Configuration Manager")]),t._v(" "),e("p",[t._v("The CAT configuration manager can be accessed at any time by selecting the "),e("em",[e("strong",[t._v("configurations")])]),t._v(" icon on the\nlower left corner of the navigation menu.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(525),alt:"Configurations Navigation Menu"}})]),t._v(" "),e("p",[t._v("Upon entering the configuration manager, a list of all existing configurations in the current CAT instance are displayed. Public configurations or configurations owned by the current logged in user can be managed or deleted by selecting one of the actions icons to the right of the configuration item. Unowned configurations can be viewed by selecting the appropriate action icon.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(526),alt:"Configuration Action Browser Default"}})]),t._v(" "),e("p",[t._v("It is also possible for users to set their browser default configuration from this screen")]),t._v(" "),e("p",[e("img",{attrs:{src:n(527),alt:"Browser Default"}})]),t._v(" "),e("h2",{attrs:{id:"creating-a-new-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-configuration"}},[t._v("#")]),t._v(" Creating a New Configuration")]),t._v(" "),e("p",[t._v("Configurations can be created by clicking the "),e("em",[e("strong",[t._v("create new configuration")])]),t._v(" button at the bottom right corner of the configuration management list screen. By default, all required fields are pre-populated with default CaSS terminology and settings.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(528),alt:"Create new Configuration"}})]),t._v(" "),e("h2",{attrs:{id:"managing-a-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#managing-a-configuration"}},[t._v("#")]),t._v(" Managing a Configuration")]),t._v(" "),e("p",[t._v("After creating a new configuration or selecting the "),e("em",[e("strong",[t._v("manage")])]),t._v(" action on an existing configuration, the configuration details screen is displayed. This screen is divided into the following sections:")]),t._v(" "),e("h3",{attrs:{id:"configuration-general-details"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configuration-general-details"}},[t._v("#")]),t._v(" Configuration General Details")]),t._v(" "),e("p",[e("img",{attrs:{src:n(529),alt:"General Details"}})]),t._v(" "),e("p",[t._v("The general details configuration settings provide fields for editing the "),e("em",[e("strong",[t._v("name")])]),t._v(" and "),e("em",[e("strong",[t._v("description")])]),t._v(" of the configuration. From this section you can also toggle the "),e("em",[e("strong",[t._v("instance default")])]),t._v(" switch and set your browser default.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("Only a single configuration can be set to the instance default at any given time. In order to change the instance default, the owner of the current instance default must toggle the default switch off. At that point, another configuration can be set as the instance default.")])]),t._v(" "),e("h3",{attrs:{id:"saving-the-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#saving-the-configuration"}},[t._v("#")]),t._v(" Saving the Configuration")]),t._v(" "),e("p",[t._v("Configurations can be saved by clicking on the "),e("em",[e("strong",[t._v("save configuration")])]),t._v(" button on the left side of the "),e("em",[e("strong",[t._v("configuration details")])]),t._v(" screen.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(530),alt:"Save Configuration"}})])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{527:function(t,e,n){t.exports=n.p+"assets/img/configurations.63f74143.png"},528:function(t,e,n){t.exports=n.p+"assets/img/browser-default.25f6a9ff.png"},529:function(t,e,n){t.exports=n.p+"assets/img/view-manage-delete.5931810b.png"},530:function(t,e,n){t.exports=n.p+"assets/img/create-new-configuration.ea5e3e25.png"},531:function(t,e,n){t.exports=n.p+"assets/img/general-details.6aaad19b.png"},532:function(t,e,n){t.exports=n.p+"assets/img/save-configuration.23d35bf3.png"},657:function(t,e,n){"use strict";n.r(e);var a=n(69),i=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"configurations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configurations"}},[t._v("#")]),t._v(" Configurations")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("This section is not applicable to Credential Engine instances of CAT.")])]),t._v(" "),e("p",[t._v("Configurations control the way frameworks and competencies appear in the editor, as well as what properties,\nrelationships, and in some cases value types of properties and relationships that can be added to frameworks and competencies.")]),t._v(" "),e("p",[t._v("Configurations are set at the framework object. If a framework does not have a configuration assigned,\nthen the following priority is made to determine the correct configuration to apply to the display of the framework:")]),t._v(" "),e("ol",[e("li",[t._v("Browser default configuration")]),t._v(" "),e("li",[t._v("Instance default configuration")]),t._v(" "),e("li",[t._v("CaSS nomenclature fallback")])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("Only a single configuration can be set to the instance default at any given time. In order to change the instance default, the owner of the current instance default must toggle the default switch off. At that point, another configuration can be set as the instance default.")])]),t._v(" "),e("h2",{attrs:{id:"accessing-the-cat-configuration-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#accessing-the-cat-configuration-manager"}},[t._v("#")]),t._v(" Accessing the CAT Configuration Manager")]),t._v(" "),e("p",[t._v("The CAT configuration manager can be accessed at any time by selecting the "),e("em",[e("strong",[t._v("configurations")])]),t._v(" icon on the\nlower left corner of the navigation menu.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(527),alt:"Configurations Navigation Menu"}})]),t._v(" "),e("p",[t._v("Upon entering the configuration manager, a list of all existing configurations in the current CAT instance are displayed. Public configurations or configurations owned by the current logged in user can be managed or deleted by selecting one of the actions icons to the right of the configuration item. Unowned configurations can be viewed by selecting the appropriate action icon.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(528),alt:"Configuration Action Browser Default"}})]),t._v(" "),e("p",[t._v("It is also possible for users to set their browser default configuration from this screen")]),t._v(" "),e("p",[e("img",{attrs:{src:n(529),alt:"Browser Default"}})]),t._v(" "),e("h2",{attrs:{id:"creating-a-new-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-configuration"}},[t._v("#")]),t._v(" Creating a New Configuration")]),t._v(" "),e("p",[t._v("Configurations can be created by clicking the "),e("em",[e("strong",[t._v("create new configuration")])]),t._v(" button at the bottom right corner of the configuration management list screen. By default, all required fields are pre-populated with default CaSS terminology and settings.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(530),alt:"Create new Configuration"}})]),t._v(" "),e("h2",{attrs:{id:"managing-a-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#managing-a-configuration"}},[t._v("#")]),t._v(" Managing a Configuration")]),t._v(" "),e("p",[t._v("After creating a new configuration or selecting the "),e("em",[e("strong",[t._v("manage")])]),t._v(" action on an existing configuration, the configuration details screen is displayed. This screen is divided into the following sections:")]),t._v(" "),e("h3",{attrs:{id:"configuration-general-details"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configuration-general-details"}},[t._v("#")]),t._v(" Configuration General Details")]),t._v(" "),e("p",[e("img",{attrs:{src:n(531),alt:"General Details"}})]),t._v(" "),e("p",[t._v("The general details configuration settings provide fields for editing the "),e("em",[e("strong",[t._v("name")])]),t._v(" and "),e("em",[e("strong",[t._v("description")])]),t._v(" of the configuration. From this section you can also toggle the "),e("em",[e("strong",[t._v("instance default")])]),t._v(" switch and set your browser default.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("Only a single configuration can be set to the instance default at any given time. In order to change the instance default, the owner of the current instance default must toggle the default switch off. At that point, another configuration can be set as the instance default.")])]),t._v(" "),e("h3",{attrs:{id:"saving-the-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#saving-the-configuration"}},[t._v("#")]),t._v(" Saving the Configuration")]),t._v(" "),e("p",[t._v("Configurations can be saved by clicking on the "),e("em",[e("strong",[t._v("save configuration")])]),t._v(" button on the left side of the "),e("em",[e("strong",[t._v("configuration details")])]),t._v(" screen.")]),t._v(" "),e("p",[e("img",{attrs:{src:n(532),alt:"Save Configuration"}})])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/26.2cd05b7f.js.gz b/docs/assets/js/26.2cd05b7f.js.gz new file mode 100644 index 000000000..dc53362a6 Binary files /dev/null and b/docs/assets/js/26.2cd05b7f.js.gz differ diff --git a/docs/assets/js/26.b715c98e.js.gz b/docs/assets/js/26.b715c98e.js.gz deleted file mode 100644 index c7418e729..000000000 Binary files a/docs/assets/js/26.b715c98e.js.gz and /dev/null differ diff --git a/docs/assets/js/27.a8e6e156.js b/docs/assets/js/27.cb63dfc3.js similarity index 99% rename from docs/assets/js/27.a8e6e156.js rename to docs/assets/js/27.cb63dfc3.js index 3024e8aee..5ef7e4a86 100644 --- a/docs/assets/js/27.a8e6e156.js +++ b/docs/assets/js/27.cb63dfc3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{625:function(t,s){t.exports="data:image/png;base64,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"},626:function(t,s,a){t.exports=a.p+"assets/img/relation-requires.1be62180.png"},627:function(t,s){t.exports="data:image/png;base64,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"},628:function(t,s){t.exports="data:image/png;base64,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"},629:function(t,s,a){t.exports=a.p+"assets/img/relation-desires.341aa591.png"},630:function(t,s){t.exports="data:image/png;base64,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"},695:function(t,s,a){"use strict";a.r(s);var e=a(69),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"relation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#relation"}},[t._v("#")]),t._v(" Relation")]),t._v(" "),s("blockquote",[s("p",[s("strong",[t._v("Relation")]),t._v(" objects describe the relation between two competencies within a Competency Framework, allowing:")]),t._v(" "),s("ul",[s("li",[t._v("Competencies to be organized into hierarchies")]),t._v(" "),s("li",[t._v("Prerequisite relationships to be established")]),t._v(" "),s("li",[t._v("Creation of equivalences across frameworks.")])])]),t._v(" "),s("p",[t._v("Relations in CASS exist outside of (but can be referenced within) competencies and frameworks, so that frameworks may reuse competencies and rearrange them in a different structure.")]),t._v(" "),s("p",[t._v("Relations can, therefore, represent a relationship between two competencies within the same framework or two competencies in separate frameworks. Relations can also be considered independent of a framework.")]),t._v(" "),s("h2",{attrs:{id:"relation-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#relation-types"}},[t._v("#")]),t._v(" Relation Types")]),t._v(" "),s("p",[t._v("Relations are directional and labeled. Let's look at the different types.")]),t._v(" "),s("h3",{attrs:{id:"narrows"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#narrows"}},[t._v("#")]),t._v(" Narrows")]),t._v(" "),s("p",[s("img",{attrs:{src:a(625),alt:"Image"}})]),t._v(" "),s("p",[t._v("A Narrows B states that the entirety of the task in A is contained within B and that A helps describe B. This relation can also be stated as “A is a subcompetency of B”. With set theory we could say that “A is a subset of B”.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it is useful to think of an indented list:")]),t._v(" "),s("ul",[s("li",[t._v("B\n"),s("ul",[s("li",[t._v("A")])])])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Addition narrows Basic Arithmetic")])]),t._v(" "),s("h3",{attrs:{id:"requires"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#requires"}},[t._v("#")]),t._v(" Requires")]),t._v(" "),s("p",[s("img",{attrs:{src:a(626),alt:"Image"}})]),t._v(" "),s("p",[t._v("A Requires B describes a relation where it is necessary to hold the competency B before the competency A may be obtained. As opposed to a Narrows relation, A and B are logically distinct. B may be involved in the steps to complete A, but it does not help describe A.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it is useful to consider a sequential checklist where all previous items must be completed before the current item.")]),t._v(" "),s("ol",[s("li",[t._v("B")]),t._v(" "),s("li",[t._v("A")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Multiplication requires Addition")])]),t._v(" "),s("h3",{attrs:{id:"equivalent"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#equivalent"}},[t._v("#")]),t._v(" Equivalent")]),t._v(" "),s("p",[s("img",{attrs:{src:a(627),alt:"Image"}})]),t._v(" "),s("p",[t._v("A is Equivalent to B describes a relation where two competencies represent the same capability in all aspects. The wording may be somewhat different, but there should be no distinction between these two competencies.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it is useful to append additional names.")]),t._v(" "),s("ul",[s("li",[t._v("A ("),s("em",[t._v("also known as B")]),t._v(")")]),t._v(" "),s("li",[t._v("A ("),s("em",[t._v("aka B")]),t._v(")")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Addition is equivalent to Sums")])]),t._v(" "),s("h3",{attrs:{id:"related"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#related"}},[t._v("#")]),t._v(" Related")]),t._v(" "),s("p",[s("img",{attrs:{src:a(628),alt:"Image"}})]),t._v(" "),s("p",[t._v("A is Related to B describes a relation where two competencies involve some degree of overlap such that interest in A may be followed by interest in B or visa versa. With set theory we could say that “there exists an intersection between A and B”.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it may be useful to annote with “Did you mean” or “Related: ”, or augment them in search results.")]),t._v(" "),s("ul",[s("li",[t._v("A\n"),s("ul",[s("li",[s("em",[t._v("Related:")]),t._v(" "),s("ul",[s("li",[t._v("B")])])])])])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Division is related to Grouping")])]),t._v(" "),s("h3",{attrs:{id:"desires"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#desires"}},[t._v("#")]),t._v(" Desires")]),t._v(" "),s("p",[s("img",{attrs:{src:a(629),alt:"Image"}})]),t._v(" "),s("p",[t._v("A desires B describes a relation where B is not essential to the acquisition of A, but it may be desired, lightly assumed, or implied by the declaration of A.")]),t._v(" "),s("p",[t._v("When presenting this relationship, present it similarly to Requires, but ensure the individual knows it is optional.")]),t._v(" "),s("ul",[s("li",[t._v("B ("),s("em",[t._v("optional")]),t._v(")")]),t._v(" "),s("li",[t._v("A")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Multiplication desires Subtraction. (for some strategies)")])]),t._v(" "),s("h3",{attrs:{id:"is-enabled-by"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-by"}},[t._v("#")]),t._v(" Is Enabled By")]),t._v(" "),s("p",[s("img",{attrs:{src:a(630),alt:"Image"}})]),t._v(" "),s("p",[t._v("A is Enabled by B describes a relation where the acquisition of B speeds or makes more probable the acquisition of A.")]),t._v(" "),s("p",[t._v("When presenting this relationship, present it similar to Requires, but as a recommended option.")]),t._v(" "),s("ul",[s("li",[t._v("B ("),s("em",[t._v("recommended")]),t._v(")")]),t._v(" "),s("li",[t._v("A")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: English Speaking enables English Writing")])]),t._v(" "),s("h2",{attrs:{id:"computational-complexity"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#computational-complexity"}},[t._v("#")]),t._v(" Computational Complexity")]),t._v(" "),s("p",[t._v("There are several methods to consider when determining competence. Consider:")]),t._v(" "),s("ul",[s("li",[t._v("Basic Arithmetic\n"),s("ul",[s("li",[t._v("Addition")]),t._v(" "),s("li",[t._v("Subtraction")]),t._v(" "),s("li",[t._v("Multiplication")]),t._v(" "),s("li",[t._v("Division")])])])]),t._v(" "),s("p",[t._v("Addition, Subtraction, Multiplication, and Division all have a narrows relationship with Basic Arithmetic.")]),t._v(" "),s("p",[t._v("If a person holds all four sub-competencies of Basic Arithmetic, do they also implicitly hold Basic Arithmetic?")]),t._v(" "),s("p",[t._v("An optimistic strategy assumes that it is aware of all information about a particular competency. It would conclude that the person does hold Basic Arithmetic because Basic Arithmetic is only composed of its sub-competencies: "),s("em",[t._v("Addition, Subtraction, Multiplication,")]),t._v(" and "),s("em",[t._v("Division")]),t._v(".")]),t._v(" "),s("p",[t._v("The pessimistic route presumes there may be additional unidentified information about a competency (such as undefined competencies) and could make no determination about Basic Arithmetic based on the holding of its four sub-competencies. (Note: However, a pessimistic process may conclude that that the person does NOT hold Basic Arithmetic if there is an explicit assertion that the person does not hold one of the subcompetencies.)")]),t._v(" "),s("p",[t._v("It is important to understand the possibilities and potential issues and to have a clearly defined goal as these relations are subject to interpretation. See "),s("RouterLink",{attrs:{to:"/dev/fundamentals/assertion-processing/"}},[t._v("Assertion Processing")]),t._v(" for further information.")],1),t._v(" "),s("h2",{attrs:{id:"creation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c1 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c2 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 2"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAlignment")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("source "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("target "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("relationType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Relation"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NARROWS")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save these objects!")]),t._v("\n")])])]),s("h3",{attrs:{id:"adding-a-relation-to-a-framework"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-relation-to-a-framework"}},[t._v("#")]),t._v(" Adding a Relation to a Framework")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addRelation")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save these objects!")]),t._v("\n")])])]),s("h2",{attrs:{id:"save"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),s("p",[t._v("EcAlignment has a helper method that validates expected fields before saving.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"delete"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),s("p",[t._v("EcAlignment has a helper method that deletes the alignment. This does NOT DELETE any objects referenced by the alignment.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"get"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),s("p",[t._v("EcAlignment has a static helper method for retrieving an Alignment, automatically decrypting it, automatically encrypting it on save, and casting it to the EcAlignment object. The blocking version locks the thread while this occurs.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("framework")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("p",[t._v("EcAlignment has a static helper method for searching for Alignments.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for alignments")]),t._v("\nEcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAlignments")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 alignments that originate from a competency.")]),t._v("\nEcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('source:"')]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"')]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAlignments")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{625:function(t,s){t.exports="data:image/png;base64,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"},626:function(t,s,a){t.exports=a.p+"assets/img/relation-requires.1be62180.png"},627:function(t,s){t.exports="data:image/png;base64,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"},628:function(t,s){t.exports="data:image/png;base64,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"},629:function(t,s,a){t.exports=a.p+"assets/img/relation-desires.341aa591.png"},630:function(t,s){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADDCAYAAABtec/IAAAkJElEQVR4Xu2dB3hUxdfGN9vL3bubQiihhUBon/SiFKmGHhAC0gWkFxFCEYjSg4YapEXpiHQRpZeEFqpAEAyoIKIIgkiVgJQ935wL8oc7GFrK7ux5n+f3SLzZ7O7c886dekajIaWltIzXGX0YsxkJFov5hMNhP+fn57gh2213JMl6D9FqtcCuPxG8brNZ8PfuyLLtb1mWzvv4+Jxg17Yz5jIGMsIYsibz5cMIZlRjdGAMZd9tpl22r7LZbfuskvWk1Wa9YJNsf7L/f0fzhO+L4HUFu+2Uw+k4wF6/1mg2fs6ujWR0YtRiFGJYNSSSG6geI0an0+1g5r7EzH2X/Qx2yQqFCwa76teu7Orfuy18NLwXzJ0xDFYvmwQJa+Lg1NGvH/LbsbUA1759yNkf1z92HX9/3ZeTlddPGNMX+vRsBfVqV3Lh33fIkgvfz2Ix3TObTX+yf+9lTGe0YBgf+ZxpqcKMxowRZrN5LTP2GQ1+BqslJTgk76UqNSpfbt/t7Vv9PugDH30yCuIWToUFK2dD/IEND9mWtBl+uHDkIYlHEx67vuCrOTBryQzl9UNGDYROPTvcfaNujauhRUIvO3wd1/H92HtfYhUEVoYTNPcrh3IM8/8+JomUtgpkROr1unh/P8c1o9EAzPBQ6bUSrve6t4R5ccPh4I6FcP3c9scMnd78c3E3HN61CBbPiVYqh8oVS93z83W49DodmIyGa+wz72ZEM0Ie/zrPJBujOiPKYrEk6A36FGb4lBJlil1s07HVzY+njIaVW5bCoVN7HzN0epN87jCs3rESJs+eAD0iu95+vXqly1lzZL3MWhd3rVbz9+zzxjJaae63SkikF1YLg0G/hRk+RafTQoGQ3K5uHSNg0exoOJ28mjOjO/HHiY2w8otx0KNzM1fRwiH3WCsFWKWVwr5TIuM9hqT6rv+qJGMwM/xebK7nzJ3zUkTrJtcmxMVAwsGNnBndiW9P7IZZS+OgV//ut0qXK3XBaDTeNJlM2EKJYzRl+D7+VUmkx4VNyMFOh3SaPUlcAf5OaNc6HJYviIFrZzP2yZ7W3Di/E9av/AQ6tW/syp4t4B5WaFqtz2nN/adlU4PBMJcZ5i+HU74e3qTuFXy6Hvx5D2cyT+LYH4dh6fqF0Ktf95SCRUPPs+9822A0YIuoLyPvozee5L3SMyIdDvspi9kE+fPlco2M6gZH9izhTCQSvyavgTHDekJogTyArYN8BYJd7w/vD0fOHOCMJApJp/dD7Mzxd6uGVTnHKoKbrEvzHbv3UYzcqpggeYHKWy3mRMlmceXNkwOGDuoMxw+s4IziDZz7aQNMmTAIypR5BXz9nNCmY0v4Kn4ZZyCROHrmIHy2aPq9GrWq/a7T626ySjCBxURbDc0wCC182kf7+zmvmkxGaNeqPuzeMoczhDeTvH8Z9O3dFgIDA6BoscKAA31oFrWBRAJbBtETR/ydv2DIb1qt9gaLkWmMIqrYIXmwnAajboksS/fyh+SC6RMHeXyfPr25c2kvLFsQA+XLl4AsrDLoPbAn7D62nTOPaCQc3ABNWzX+1WAwXPfx8dnEYidcc39tB8kDFSxJll0Wi9lVuWJJZT5dHejE09m/bT40i6gDkmRTugc7vtvCGUc0Dv/6LQwaOeCCn7/fWVYR/MRiqb3mfguS5AEKkiTrTovFBBGNakBS4hdcUBPPD059duwQAZLdeyoCZOq8yZez5cj2C6sITrHY6qxJv0VWpJeUH3vab0Hjh9erAkf3LuWCmHh5/lcRSNCxZwdl/l1tGhH59Itpl4Jy5TjBKoJfWay9raGugftIp9NNYU99V82q5eDQTnriZwS4VLlpRG3w8/eFYTFRkHw2iTONiLCK4LzTz4mtgUOMmupYJGWsWvs67Dfz5Q1SFrqog5RIf3ZtmQNlyxaDkNB8MG/FTM4wInL8/HcQFT3ohMFg+IPF4DpGqDowSemrIKdTPoEbb2Jj+imj1urAJDKWBbNGK9OHjZqFw94fdnCmEZHvfvsW3mrbLIl1C66ymBzGMKnilJQOGiXZrK6mb9aECz9v4gKRyDwu/5YAHdo1VroFuIZAbRhR2bhnzeWcuYOOsNj8kVFDHbCktFEhp0M+nzXQH9Ysj+WCj3Aftm+YCaGhwVClZmVI/H4rZxhRGT72g+91et0FFqufav57wxXpBTTYZrW4ur4TkeFbbokX49afu6BX95bgH+AH0+dP5swiKvt+TLwRWij/fhazJxkV1YFMej7JDof9mK/TTk99D2XjqmmQPXsg6ytHKMtu1YYRlSGjBx3QarWXWAx/xDCoA5v0dIXJsnTnjeqvKvvb1YFFeA5/nY6H8PrVoFCRUNi4dw1nFlHZemjjBb8AP5wuxDwMOdUBTvoP6fX6aIvFDGNH9eaCifBcPhrRW9lx6E1dgmPnDt+rWafaVhbWOGVI6waeIr0s2/b7+cpKPjx1ABGeTzy7rzhd2K1PZyVph9owohIzJXqfj4/PRc39HASkJyi70ylfLVW8EJw5/niyTEIs8P6WKlUUajcIUzbeqM0iKqz7c9psNh9nsb5QQ2sGHlNp1t+/3TyilpLoUh0whHhgmrIG9apBidLFYFfyNs4sonLw5z1XA7MGYAbnHYwAtRG8UU1tNosrakBHLkgIsbl3ZR+826MV5M6TE9bv+oYzi6gk/5F0u2TZ4ltY7ONWY69eRhxptZhhzvShXHAQ3kPs2AEQkMVf+FRkapq/3XQj88A5RnG1MYSXVqsdbrNaKFEHoTDv0xHg5++EJesWckYRmR6RXTczO+DBLuXVHhFWBoN+kmSzwLZ1n3KBQHgvmIbM6etQThNSG0VkBo0ciElJ/2JUVVlFPJnMppmyLMGe+LlcABDEmuWTvbISiI4dgUediV0J4JMfzU9JO4jUWL08VqkE8GAPtVFE5pFKAM86FEvY58dm/96EedwNJwg1S+d/rIwJrEpYzhlFZAYO7x/P7II7CoupPeTJ6ocDflvXUp+feHbmzBimpCXfsHs1ZxSR6dq3Cw4M4uxAfrWRPFFNrVYzjfYTL8TEjyMhT95csOe4+OcSPErTlo1xivAHhp/aUJ6ksrjIh+b5iZehZ9fmUKpsCSUFl9ooIlOs1P9hd2CrxkNTkWeX7bbbH9AKP+IlwRWD9etWgboNaykJOdVGEZXks4f/8c/iv495aZ7aXO4uvcNhv4Jr+9U3kyBehL//2AElSxSG7pFdOKOIzIETuy6bTCbMNThQbTK3ld1u21eqRCHa2EOkKb8dWwtZsvjDjM+ncEYRmXWJX+PJRJ6xRkCr1Y7xdcq0pZdIF+JXzwBfP4dXZRZCRk4cvofZ6ywju9pz7qQw3NxD031EevLRiHeV9GLelGMQqVKj8jbmMcQtDyp1sqb/nfHRfbgbRhBpTaMG1fEob84kInPsXNJdXz/nYea1kWrzZbpku5SMCTzVN4og0oNLv8ZDUFA2mDJ3EmcUkdmyf+0fD8YD3Gr3YBT2+8+fpOy9RMaB4wH+/r5ec1T5v/T7sA+eO4CLhKxqI2aGClmtZhfl7Scyg8jebaFS1de8an0Aki8k+FvmvalqM2a4HLJ0AU/sUd8YgsgIcKq52CsFYdjYDziTiMzuY9uv6XRaTCRSRe3JjFR0tkB/Oq6LyFS+3b5A2T7sbV2BQSMHfsc8mKzJpKXCQXhe39oVtMmHyHz69GoNb9SpzplEdLLnyHaUeXGI2pzpLrvdeqJZ4zDuRhBEZoBpxvPkCYJP5kzkTCIyaxNXXfTx8bnCLBmi9mh6qo1dssGfpzZzN4IgMosNX01hT8SskPTLPs4oItO4ecODzJOr1CZNL2kdDiklNqYfdwMIIrNpUK8q9OjXlTOJyLAK757eoMcsQuk/IKjVaqfkyxsEdy7t5QqfIDKbn5JWguywQ8LBjZxRRGbgsEhcF4DrA3zUnk1LBeDAHza11AVPEO5C33fbQL0363AmERk8aFV2yL8wj7ZUmzbNZDKZNr9RrTxX4AThTlz9fZuybXjZ+i84o4jM1HmxZ318fE4xqxrU3k0LBVnMJhel9CY8gfFj+kKlqhU4k4hOtuxZTzKvtleb96VlNpt3hNetwhU0QbgjKecTIVu2LPDFN/M4k4jMtPmTL7BWwAlmWZ3awy+jYLPZCN/vW8oVNEG4K5+MGwjlK5blTCI6gVkDfmGebaM28QuLmT8xolFNroAJwp3BfQI5c2bzumPGYmeO/5O1Ao5r0mhGIAD7/kmJ1PcnPI/J4wZAlRqVOJOIDO6MdPrKmD6srtrMzy2tVru4coWSXMEShCeA2YQxh+Dq7Ss5o4jMgKF9sQJYr/bz80ovSda7NO9PeDLvR3aAJi0acSYRGVwOrTforzEPF1Sb+nk0Jn++XC51gRKEJ3H2x/Vgt9tg55F4zigi8+Zb4bgmYIra1M8sh8N+NS52MFegBOFptG5RH94d0IMzichs3r/Oxbrw2Ap4odRhFXDq79pZSvZBeD6Jm2ZDUK4cypJZtVFEJjgk76/My63U5n6qTCbDzrYt63MFSRCeSqFCITBz8XTOJCIzctyHV3x8fDap/f00GTHR5574uVwhEoSnMn5MJITVq8mZRGQOndoLOr3uBvN0LrXJU9OAvLlzcAVIEJ7MX6fjwWazwq7kbZxRRKZKzcrYDXhfbfL/lGS1nBw2uAtXgATh6dSvVw2GxURxJhGZuIVT7uj12kNqn/+XrGaT0XX8wAqu8AjC0/lidjSUq1CGM4nIHDlzAAxGQwrzdh612Z+kqPwhNPdPiAmuDJQkm9elEK9Y9bUzzNvvqc3OyW6znhr9YQ+u4AhCFN58MwyGjBrImURkJn027rbeoN+l9rtaWqvF7DqyZwlXaAQhCovnjvG6bcLKbIBO+w/zuK/a9I+qRYC/kyswghCJy78lgMVihgMnd3NGEZkChfP/wTzeRG36h9LpdJvatWrAFRhBiMarr5XyukNEukd2wWXB09W+fyin057y5cKxXGERhGiMHNYLmrZuwplEZJauXwhGo/G02vf/KlCv1ykZVdWFRRCigQlusuXIyplEZJLPHQaTyYTTgXnV5kdFFqDpP8JLcF3dD75+Tti0by1nFJEpUbb4ec2Tzg5g/f/4ru804QqKIESldu0q8PGU0ZxJRKZ73y64L2Cy2v+s/y9fWzQ7miskghCVUcPfhWZtIjiTiMyspXFgsVgOq/2vNxoN8GvyGq6QCEJUdmyYBfkLhnAmEZn9P+3C9QC3mefNj1YAYQ6HxBUQQYjMrT934aCYYgq1UUQmS9Ysl5nnyz1aAYyrUL44DQASXkfRVwrC56vmciYRmcrVK15knu/w0P06nW77e91bcoVDEKLTokUDiIoexJlEZLr37XKL2X78wwrAIUsX58UN5wqHIERnzOi+XrcgKHbmeLDZLNseVgCSZL1Hp/4S3sj6VdOgWKlXOJOIzNqdq8BsNv/5r//NWq0PXD9H2X8J7wPPDLBJNs4kIvP974fAx8fnnuZBuvDX7ZKVKxiC8AZwRaDZbII9x7dzRhEZh6/jOvN+IawA+hQKzUszAITXUiA0Hyxb/wVnEpEpWCT0EvN+LawAZterXZkqAMJreSOsMkz8dCxnEpGpUacargXohBXAtr69WnOFQhDeQqdOzSEy6j3OJCLzTs92mB1olIb1f46PHdWbKxSC8BaGftgL2nZuzZlEZDAnotFsnKOR7dIfc6YP5QqFILyFKbFR0KBJXc4kIhMzNRpsdts6ja9T/vvrJRO4QiEyBjy0MmFNHKScT+SuERnDks/HQaWqFTiTpMbKLUthwcrZHBt2r1YSb6h/392IWzgVZIf8rUaWpdu7Ns/mCoVIf3489CXOxwLri8GMSXQMe2YRv+4zKFq8CGeS1ChdvpRy356EXZbcfkxhybqFINmlkxqb1UKnAGUSgyLbg8lkhPz5ckGJYqHcdSJjOLJvGeTImYMzSWr8WwHgPoKPPhml0HdIb+jYswP7W9mVa4NG9Ode5y5gS8VqtfyFg4CuX77/hisUIn25e3kfBOUIhBpVy8EHAzsqAbN7yxzu94j05+ejX4N/gB9nktT4twJ40kGjO4/Eg8VqwW233DV3YeuhTZgg9LoGE4Gc+2kDVyhE+rJmeawSQDgDk7x/mfLvti3qcb9HpD+4HBib7WqTpEZqFQBSvFQxpXuHy27V19yBxO+3gt6gv6nR63TKscnqQiHSlyYNq4NWq4VT7OmDP5cpWQQsFhPdi0wAyxwTg6hNkhqpVQDfntgNslN+7nGFjGT/j4mYGeiOBmspPDBRXShE+nHhZ2x+GaDa62Ue/r8p4wYoATU+ug/3+0T6ghvhsDJWmyQ1njQGgPT/sA+EhObDATYlD7/6de5C0i/7sIXi0uCX+Ofibq5QiPRj4kd9leB5NAfDpV/jwWw2Qmj+3MoGFfVriPQD4x/vx/NM36U2C4DgugJ33mB09MzB+5+VWgAZzytF84Nks3Ll/laTMOWmbP56GvcaIv3A+/CiLYCp82IfrgGYt2ImRE8aAY2ahSt/LyhXDtj3w07ute7AwxYAjQFkLPu2zueeFmpwfED9OiL9SOsxAKR7ZBfles/+3bhr7gBWTEp2YJoFyFi6dYxQAgMPYRk2qDNH9mwBYDDolZFp9WuJ9AHjH/vsapOkxtMqgBUbFyvXq9euxl1zBxKPJoDBaLhJ6wAyEFzu63TYIUf2LMo6APV1ZHC/DkrgjBjSlbtGpA+nWPz7+ftyJkmNp1UAk2dPUK43bt6Qu+YOJBzcgK2ea7QSMANZOGuUEhSRqWy//ilppTJ/nDtntv+sJIi0JZnFf/agbJxJUiO1CmDR6vlK/x+vz1oyg7vuDqzf9Q2uBLxIewEyEFz1h0HxtASsr1e8H1yrFtMmrYxgx+Y5UKhoQc4kqfFvBYAVB5odwdOG/x3HQdp1bcu9zl1YvPZzsMv2k7QbMIO4cmarMu/fIqIWd03NlwvHQtXKpZUxAfU1Iu1ZsXgivFq5PGeS1GjTsSWUq1iWIzyiPnR+9x23TzE2fcEnuBtwH+UDILyeuGnDoE7DWpxJRGbM5FGYD+AbyghEeD2jRvSBFu3e4kwiMgOGRYLJbPqMdVUoJyDh3bz77tvQo19XziQi06H723eY94djBUBZgQmvpmGjMGUFn9okIlMtrMpVzYMDQulcAMKrKVGyKMz/chZnEpHJVyDfFeb9algB0MlAhFeDi4C2fLueM4nIWG3WFOb9YKwA6GxAwmvBuNfpdZB8NokziagcOrUXNyvh2YB6rADodGDCaznA4j533lycSUTmq/hl2AI4p5gf5ZCli4/uTScIb+GzGSOgZp3qnElE5uMpo0GSpY0PKwCdTrf9ve4tucIhCNHp2bON100BtuvS5jbrAox4WAEwjatQvjjNBBBeR9Vqr8HkWeM5k4hMqbIlcQYg4tEKIMzhkLjCIQjRyRIYoOTIV5tEZOwOCWcAQh+tAPSYGOTX5DVcARGEqJxm8Y7pwI/98ey5AD0dPA/AYDBgBaB9tALQOJ3ytUWzo7lCIghRmT8rGipVq8iZRGQmxMVgyvLEx8yP0ul08ZimSl1IBCEqnTo1h94De3ImEZnm7Zrd0mq1H6r9j4osEJKLBgIJr+H/ihVSMvmqTSIyefPlwT0A1dXmRwXq9Tq4+vs2rqAIQjQwzjETMKbHVptEVA6c3I2rHnEXoE1tfkVOpz0Fs9GoC4sgRGPJ5+OgzKulOJOIzJS5kzAL0CG17x9Kp9NtateqAVdYBCEabds2hj6D3+VMIjKNmze8yfr/Q9S+f1QtAvydXGERhGjkCMoGK7cs5UwiMr5+vjeYx0uqTf+otFaL2XVkzxKuwAhCFA7vWQpZsmaB4+e/40wiKqu3r8TTpy8zj/uoTf+Y7DbrqdEf9uAKjSBEYdiHvaBJyzc5k4gM6+7cs9ksC9V+f5Ki8tN0ICEwRV8pCDMXT+dMIjJ58+W5xrxdW232J8lqNhnptCBCSPAUIKevE77//RBnElHBU4BMJtPfzNsGtdmfKMlqOTlscBeu8AjC0xkyuBs0axPBmURkeg3oftdms81X+zw1DcibOwdXeATh6YQWzAdzln/GmURkgnLluM48XVNt8tRktFrNrj3xc7kCJAhPZdeWecr5fcnnvGf339L1C/EQ0L+Yp3Vqk6cqk8mws23L+lwhEoSn0rpNI6/L/tOoWfgto9E4Su3vZ1EFs9kI185StmDC88E4luwSJBzcwJlEVA7+vAcH//5hXs6jNvczyeGwX42LHcwVJkF4GlMmRUHl6pU4k4jMiHFD8QjwHWpfP4/G5M9HawIIz6dI0VCYOi+WM4nI5AnOjVN/jdSmfh7pJcl6d8NXU7gCJQhPYe3KqbgQxqtSf81aGoe5/3/XqFN/Pa+0Wu3iyhVKcoVKEJ5C1aqvwrCYKM4kIlPm1dI3mHe7q/38IgqwmE2upEQ6OYjwPA4mLlLO/ks6vZ8ziaisSliOg3+49NeqNvMLyWw2JkY0qskVLkG4OxERdbxu6q92g7CbzLOj1T5+GQXjlOD3+5ZyBUwQ7soRFq8Opwz7f0zkTCIqa3Z8hU9/TPvtqzbxS8lsNu8Ir1uFK2SCcFfCw2tCr/7dOZOITPXaVVOYV19o4c/TFIRjAXSKMOEJ4Km/vn5OJRGm2iSigqf+sqc/rvuX1eZNE7E/vvmNauW5wiYIdyMsrDJERr3HmURkKrz+WorRaIxS+zYtFWCzWly0LoBwZ3DeP3tQNq8a+Vfm/a2Wi5q0Gvn/L2m12in58gbBnUt7uYIniMwG4xK3/I6f8TFnElFJPpsEOXMH3dDpdC3Vfk0PaR0OKSU2ph9X+ASR2UyI6Q+lypX0qoSfQ6Lfd0l2KUnztISfaag2dskGf57azN0AgsgsMB79/J2wYuNiziSisuf4drBJtlvMk2XUJk1X2e3WE80ah3E3gSAyi2ZN60KLt5txJhGZOg1r37LbbXPV/swIBeGA4NoVk7kbQRAZzTfLJ0PW7IFeNe332aLpOPB3SZNe037PoOhsgf5w/RwlDSEyD4y/nLmyw7T5kzmTiMqhU3shS2DATebBhmpTZqgcsnSh6zsR3E0hiIyic6e3oHZ4GGcSkWnRrtltu2xfo/ZjZqgQJhBdszyWuzEEkd58s2wyBGbNAruPbedMIiqffjENm/5XmPeyqM2YWYrydcpw/uRG7gYRRHqB8caawV51ys+u5G0gO+zY9H+mU34yTLJdSn6j+qvcTSKI9AKX+7bt3JozichUrPLaTbvdHqf2nzvIabfb7oyP7sPdKIJIa2Ki+0Jo4QLw3W/fciYRlfeH979ns9t+Zl4zq83nLgqzWsywde2n3A0jiLQinsUX7vTbsHs1ZxJRWfDVHDCbTTeYx0LVpnMrabXaMTgecOb4Wu7GEcTLgnEVyPr93jTlt/3wFkxsckun071Uht8ME+sK7CtVohD8c3E3dwMJ4kXBeCpbthh069OZM4moHD1zEIoWK3KTNf3Hqn3mztI7HPYrzSNqcTeRIF6U5m/VhddrVPKq9N713qzzj122b9e8bHrvTFB22W67/cGAjtyNJIjnZcjATlCoaEHluCu1SUSlR2TXe5JdOsG8ZFeby1NU1mazuOZMH8rdUIJ4VmZNH6ac6rstaTNnElEZM3kUHuyB6/xzqk3laWpqtZph3Ze0aYh4ftayuMERf8x1rzaJqODCJovFjJl9i6vN5KnqZ7NaaHqQeC5wus/p64C5K2ZyJhEVnO5j5seVfjXUJvJoabXa4ZLNAnsT5nE3miDU7Imfr5g/buFUziSismz9F2CxWnC6r77aP0LIYNBPkmUJKLU4kRoHWXz4+/tC7MzxnElEBVN6S3bpltGoe0vtG6FkMptmYiWwJ34ud+MJYveWueAf4AsxU6M5k4jK0vULFfMbzIZ2ar8IKWwJYHdg2zoaEyD+x9Z19/v83vTk/3zVXKXZL/yTXy0cE8CBQZodIJC1X37idX1+ZbRf5D7/MygSNw/ROgHvZta0oYr553nRaD/O85vNyiGe1dWm8DY1xcVCUbRi0CsZzO57tuyBXjXP371vl3uW+8k8hZnnf1mVlmXpNu4doA1E3gHe5xZv1YXCRQsqu93UJhER3NhTr3EdzOV3ksV8kNoE3q7sTqd8tVTxQrSVWHDw/pYt84qyscdb1vZjJVfklcI3Zae8Q+PBa/vTW3pZtu3385UhYU0cFziE5xPP7ivu58ctvd6yq2/BytnAjI8HeIzTeOCuvgyXXq+PtljMMHZUby6ACM8lZtR7ymDfdC9K5jFgeKQLB/t0Ol3m5u/3QIXJsnQHE43+cYKyDXsyeP9qhVWCQkVCvSaNV+L3WzGB5y3W38ccfu6dxsuNJTsc9mO+TjvQuQOeyeplkyFLFn8le++RMwc4o4gI5u2XHfZbLHY/ZTFsUgc16fk1GM8hxBOI6BgyzwDvU9dOzZRDO2YtmcGZRETwuK4W7ZvdsdqsV1nM1lIHMenlVMjpkM9nDfSn1oCbs5rdn5w5s0HdhrW85sQefOoHBAbckh0yHtflNif2iKhRks3qavpmTbjw8yYu+IjMA+9Hs4jaSvYebxnowwquTnitfx5k7wlXByspfRTkdMon7JIVYmP6wZ1Le7lgJDIOLP+JMf3B188BLdq95RVHdCefTYIho9/HtF23ZKc8T5OJR3R7s1r7Ouw38+UNgvUrP+ECk0h/1rFyDw0NhtLlSsKXm5ZwRhERHNPIlSfnTYfT8R2LwdLqoCRlsHQ63RRJsrpqVi1HyUYyCCznsDcqQo6c2WH8jI85k4gIJu2oUOW1WzbJ9heLuZbqOCRlrvwsFvMWi8UE4fWqwNG9S7mgJV4eLNdG4TWURJ2RUe/B4V/FP5tv9Y6VUKN2tVt4NJfZbP6AxZpFHXwk91EQaw3sxIogolENSEqkFkFagOXYtEktZSXfuwN6eEU/H3co1m4Q9g+u5LNK1lEa6ud7lIIlybKLtQpclSuWpMQjLwiWW7Wq5ZUcfT37d4P9PyZyRhENTNRR5tXSKcz41602azSLJV91cJE8R06DUbdElqV7+UNywfSJg+DaWVpMlBpYPtNYORUunB+CQ/LAsJgo4Y/hxl2Jw8Z+AHmCc6dIdums1qDtoXHjY7hJzy89I9rfz3nVZDJCu1b1YfeWOVzwezNYHu3bNAKbzQpVa1ZWTuAVfcfeknULoXHzRreNRuNtXz/nThYjuGmHduwJrvJWizlRsllcefPkgKGDOsPxAys4Q3gD+L3x+xcMDYbsObIqzfythzZxRhGJ9bu+we/pCsoVdAMX8Fit5tEsJnKpg4QkvrBVEOlw2E9ZzCbIny+Xa2RUNziyZwlnFJHA7/fBwE6QK2c2wNZQkVcKu0ZPGiH003719pXQ+/2e2MT/22Qy/S3J0kLN/Xx89LQnKcL+3mCnQzrNngiuAH8ntGsdDssXxHj8mAF+fvweLZvWdjmddhczvctg0OGps1GMBgaDYS5rAv/lcMrXw5vUvTJ59gSPz9SDnx+/R5MWb7KmvW+K1Wq5IsvSIs39TTpY8ZNIqaqFwaDf4u/nSNHptFAgJLerW8cIWDQ7Gk4nr+ZM5k7g58PP+c7bjVzBeYNcOq0WWJfnb/adNuL3Un/RR1SSMdhisezVarV3cubOeSmidZNrE+JiIOHgRs5k7gR+PvycLdu/dTs4JM91ds/uOn0dSXqjHuft8XuRSC+sQEakXq+LZxXCNaPRALLdBpVeK+F6r3tLmBc3HA7uWJjhW5Xx/fB98f17dW0Or5Z7xSVJVmAVF9hslsvsM2/Gz/3g8z+vbJr7TeQoViEk6A36FNZfTilRptjFNh1b3fx4ymhYuWWpsgVWbcb0BN8P3xff/+0ube6WebX0NZtku2kwGm76+jl2afXaDx98bvz8JFK6qR4jRqfT7fDzc1xiFcJd9jPgBqXCBYNd9WtXdvXv3RY+Gt4L5s4YBquXTVLyHJ46+vVDfjv2ePJT/PnR6/j7+Dp8Pf6dPj1bQZ03KrpC8+dx4clK+H7sv3fZ0/0C+/d2/DwPPld6qTCjMWOE2WxeyyqEM+zfeLhFSnBI3ktValS+3L7b27f6fdAHPvpklHLIB+bDiz+w4SHbkjY/Zmj8+dHr+Pv4Onw9/p2OPdq7qoVVuR4Smu8qez88NReP0Trr9HNsYa2UkQ8+D34uEinThQNKrzP6MGYzEiwW8wmHw36OVRI3WCVxhz2h7yEseBUDq8H/r/yOzXqPVSZ3ZNn2N77ex8fnB/x7D/4u/n18H3cYwPJhBDOqMTowhrLvMNMu21fZ7LZ9Vsl6khn3AntK/4ndCs2Tv/MdvK5gt/3Mmu4H8fVmqxl32Q198Hfx7+P74PuR0kj/D0tMOZTnhqEcAAAAAElFTkSuQmCC"},693:function(t,s,a){"use strict";a.r(s);var e=a(69),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"relation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#relation"}},[t._v("#")]),t._v(" Relation")]),t._v(" "),s("blockquote",[s("p",[s("strong",[t._v("Relation")]),t._v(" objects describe the relation between two competencies within a Competency Framework, allowing:")]),t._v(" "),s("ul",[s("li",[t._v("Competencies to be organized into hierarchies")]),t._v(" "),s("li",[t._v("Prerequisite relationships to be established")]),t._v(" "),s("li",[t._v("Creation of equivalences across frameworks.")])])]),t._v(" "),s("p",[t._v("Relations in CASS exist outside of (but can be referenced within) competencies and frameworks, so that frameworks may reuse competencies and rearrange them in a different structure.")]),t._v(" "),s("p",[t._v("Relations can, therefore, represent a relationship between two competencies within the same framework or two competencies in separate frameworks. Relations can also be considered independent of a framework.")]),t._v(" "),s("h2",{attrs:{id:"relation-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#relation-types"}},[t._v("#")]),t._v(" Relation Types")]),t._v(" "),s("p",[t._v("Relations are directional and labeled. Let's look at the different types.")]),t._v(" "),s("h3",{attrs:{id:"narrows"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#narrows"}},[t._v("#")]),t._v(" Narrows")]),t._v(" "),s("p",[s("img",{attrs:{src:a(625),alt:"Image"}})]),t._v(" "),s("p",[t._v("A Narrows B states that the entirety of the task in A is contained within B and that A helps describe B. This relation can also be stated as “A is a subcompetency of B”. With set theory we could say that “A is a subset of B”.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it is useful to think of an indented list:")]),t._v(" "),s("ul",[s("li",[t._v("B\n"),s("ul",[s("li",[t._v("A")])])])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Addition narrows Basic Arithmetic")])]),t._v(" "),s("h3",{attrs:{id:"requires"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#requires"}},[t._v("#")]),t._v(" Requires")]),t._v(" "),s("p",[s("img",{attrs:{src:a(626),alt:"Image"}})]),t._v(" "),s("p",[t._v("A Requires B describes a relation where it is necessary to hold the competency B before the competency A may be obtained. As opposed to a Narrows relation, A and B are logically distinct. B may be involved in the steps to complete A, but it does not help describe A.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it is useful to consider a sequential checklist where all previous items must be completed before the current item.")]),t._v(" "),s("ol",[s("li",[t._v("B")]),t._v(" "),s("li",[t._v("A")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Multiplication requires Addition")])]),t._v(" "),s("h3",{attrs:{id:"equivalent"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#equivalent"}},[t._v("#")]),t._v(" Equivalent")]),t._v(" "),s("p",[s("img",{attrs:{src:a(627),alt:"Image"}})]),t._v(" "),s("p",[t._v("A is Equivalent to B describes a relation where two competencies represent the same capability in all aspects. The wording may be somewhat different, but there should be no distinction between these two competencies.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it is useful to append additional names.")]),t._v(" "),s("ul",[s("li",[t._v("A ("),s("em",[t._v("also known as B")]),t._v(")")]),t._v(" "),s("li",[t._v("A ("),s("em",[t._v("aka B")]),t._v(")")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Addition is equivalent to Sums")])]),t._v(" "),s("h3",{attrs:{id:"related"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#related"}},[t._v("#")]),t._v(" Related")]),t._v(" "),s("p",[s("img",{attrs:{src:a(628),alt:"Image"}})]),t._v(" "),s("p",[t._v("A is Related to B describes a relation where two competencies involve some degree of overlap such that interest in A may be followed by interest in B or visa versa. With set theory we could say that “there exists an intersection between A and B”.")]),t._v(" "),s("p",[t._v("When presenting this relationship, it may be useful to annote with “Did you mean” or “Related: ”, or augment them in search results.")]),t._v(" "),s("ul",[s("li",[t._v("A\n"),s("ul",[s("li",[s("em",[t._v("Related:")]),t._v(" "),s("ul",[s("li",[t._v("B")])])])])])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Division is related to Grouping")])]),t._v(" "),s("h3",{attrs:{id:"desires"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#desires"}},[t._v("#")]),t._v(" Desires")]),t._v(" "),s("p",[s("img",{attrs:{src:a(629),alt:"Image"}})]),t._v(" "),s("p",[t._v("A desires B describes a relation where B is not essential to the acquisition of A, but it may be desired, lightly assumed, or implied by the declaration of A.")]),t._v(" "),s("p",[t._v("When presenting this relationship, present it similarly to Requires, but ensure the individual knows it is optional.")]),t._v(" "),s("ul",[s("li",[t._v("B ("),s("em",[t._v("optional")]),t._v(")")]),t._v(" "),s("li",[t._v("A")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: Multiplication desires Subtraction. (for some strategies)")])]),t._v(" "),s("h3",{attrs:{id:"is-enabled-by"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-by"}},[t._v("#")]),t._v(" Is Enabled By")]),t._v(" "),s("p",[s("img",{attrs:{src:a(630),alt:"Image"}})]),t._v(" "),s("p",[t._v("A is Enabled by B describes a relation where the acquisition of B speeds or makes more probable the acquisition of A.")]),t._v(" "),s("p",[t._v("When presenting this relationship, present it similar to Requires, but as a recommended option.")]),t._v(" "),s("ul",[s("li",[t._v("B ("),s("em",[t._v("recommended")]),t._v(")")]),t._v(" "),s("li",[t._v("A")])]),t._v(" "),s("blockquote",[s("p",[t._v("Example: English Speaking enables English Writing")])]),t._v(" "),s("h2",{attrs:{id:"computational-complexity"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#computational-complexity"}},[t._v("#")]),t._v(" Computational Complexity")]),t._v(" "),s("p",[t._v("There are several methods to consider when determining competence. Consider:")]),t._v(" "),s("ul",[s("li",[t._v("Basic Arithmetic\n"),s("ul",[s("li",[t._v("Addition")]),t._v(" "),s("li",[t._v("Subtraction")]),t._v(" "),s("li",[t._v("Multiplication")]),t._v(" "),s("li",[t._v("Division")])])])]),t._v(" "),s("p",[t._v("Addition, Subtraction, Multiplication, and Division all have a narrows relationship with Basic Arithmetic.")]),t._v(" "),s("p",[t._v("If a person holds all four sub-competencies of Basic Arithmetic, do they also implicitly hold Basic Arithmetic?")]),t._v(" "),s("p",[t._v("An optimistic strategy assumes that it is aware of all information about a particular competency. It would conclude that the person does hold Basic Arithmetic because Basic Arithmetic is only composed of its sub-competencies: "),s("em",[t._v("Addition, Subtraction, Multiplication,")]),t._v(" and "),s("em",[t._v("Division")]),t._v(".")]),t._v(" "),s("p",[t._v("The pessimistic route presumes there may be additional unidentified information about a competency (such as undefined competencies) and could make no determination about Basic Arithmetic based on the holding of its four sub-competencies. (Note: However, a pessimistic process may conclude that that the person does NOT hold Basic Arithmetic if there is an explicit assertion that the person does not hold one of the subcompetencies.)")]),t._v(" "),s("p",[t._v("It is important to understand the possibilities and potential issues and to have a clearly defined goal as these relations are subject to interpretation. See "),s("RouterLink",{attrs:{to:"/dev/fundamentals/assertion-processing/"}},[t._v("Assertion Processing")]),t._v(" for further information.")],1),t._v(" "),s("h2",{attrs:{id:"creation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c1 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c2 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 2"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAlignment")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("source "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("target "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("relationType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Relation"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NARROWS")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save these objects!")]),t._v("\n")])])]),s("h3",{attrs:{id:"adding-a-relation-to-a-framework"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-relation-to-a-framework"}},[t._v("#")]),t._v(" Adding a Relation to a Framework")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addRelation")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save these objects!")]),t._v("\n")])])]),s("h2",{attrs:{id:"save"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),s("p",[t._v("EcAlignment has a helper method that validates expected fields before saving.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"delete"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),s("p",[t._v("EcAlignment has a helper method that deletes the alignment. This does NOT DELETE any objects referenced by the alignment.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"get"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),s("p",[t._v("EcAlignment has a static helper method for retrieving an Alignment, automatically decrypting it, automatically encrypting it on save, and casting it to the EcAlignment object. The blocking version locks the thread while this occurs.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("framework")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("p",[t._v("EcAlignment has a static helper method for searching for Alignments.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for alignments")]),t._v("\nEcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAlignments")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 alignments that originate from a competency.")]),t._v("\nEcAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('source:"')]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"')]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAlignments")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/27.a8e6e156.js.gz b/docs/assets/js/27.cb63dfc3.js.gz similarity index 99% rename from docs/assets/js/27.a8e6e156.js.gz rename to docs/assets/js/27.cb63dfc3.js.gz index 35327d02b..3e06e4815 100644 Binary files a/docs/assets/js/27.a8e6e156.js.gz and b/docs/assets/js/27.cb63dfc3.js.gz differ diff --git a/docs/assets/js/31.4e315655.js.gz b/docs/assets/js/31.4e315655.js.gz deleted file mode 100644 index dfa6a3183..000000000 Binary files a/docs/assets/js/31.4e315655.js.gz and /dev/null differ diff --git a/docs/assets/js/31.4e315655.js b/docs/assets/js/31.fc1b5e7b.js similarity index 82% rename from docs/assets/js/31.4e315655.js rename to docs/assets/js/31.fc1b5e7b.js index c6611b4aa..2666f5258 100644 --- a/docs/assets/js/31.4e315655.js +++ b/docs/assets/js/31.fc1b5e7b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{533:function(e,t,a){e.exports=a.p+"assets/img/user-configuration.5c0e0c9d.png"},534:function(e,t,a){e.exports=a.p+"assets/img/manage-default-owners.47c6a75a.png"},535:function(e,t,a){e.exports=a.p+"assets/img/select-default-owners.1e72e4ce.png"},536:function(e,t,a){e.exports=a.p+"assets/img/manage-default-readers.c6e7c9ba.png"},537:function(e,t,a){e.exports=a.p+"assets/img/select-default-readers.de910329.png"},658:function(e,t,a){"use strict";a.r(t);var s=a(69),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"managing-default-users"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#managing-default-users"}},[e._v("#")]),e._v(" Managing Default Users")]),e._v(" "),t("p",[e._v("By default, the creator of a CaSS framework, competency, or other object is assigned as the sole owner of that record. By using the "),t("em",[t("strong",[e._v("user configuration")])]),e._v(" section of the configuration, other specified users and groups can be assigned as owners and readers to objects created in the framework/competency editor that use the configuration.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(533),alt:"User configuration"}})]),e._v(" "),t("h2",{attrs:{id:"default-owners"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#default-owners"}},[e._v("#")]),e._v(" Default Owners")]),e._v(" "),t("p",[e._v("Users and groups added to this section are automatically added to the owner list of any object created in the framework/competency editor that use this configuration. To manage the list of default owners, click the "),t("em",[t("strong",[e._v("manage default owners")])]),e._v(" button in the "),t("em",[t("strong",[e._v("default owners")])]),e._v(" section.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(534),alt:"Manage Default Owners"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("select default owners")])]),e._v(" dialogue window is displayed. Select the desired default owner entries and click the "),t("em",[t("strong",[e._v("apply")])]),e._v(" button in the bottom right of the dialogue window. Default owners can also be removed in a similar fashion.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(535),alt:"Select Default Owners"}})]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Users and groups can be differentiated by the type column icon and email address. All assignable users will have an email address and single person icon. All group assignable groups will display "),t("em",[e._v('"n/a"')]),e._v(" for an email address and a multi person icon.")])]),e._v(" "),t("h2",{attrs:{id:"default-readers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#default-readers"}},[e._v("#")]),e._v(" Default Readers")]),e._v(" "),t("p",[e._v("Users and groups added to this section are automatically added to the reader list of any object created in the framework/competency editor that use this configuration. To manage the list of default owners, click the "),t("em",[t("strong",[e._v("manage default owners")])]),e._v(" button in the "),t("em",[t("strong",[e._v("default owners")])]),e._v(" section.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(536),alt:"Manage Default Readers"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("select default readers")])]),e._v(" dialogue window is displayed. Select the desired default reader entries and click the "),t("em",[t("strong",[e._v("apply")])]),e._v(" button in the bottom right of the dialogue window. Note: Default readers can also be removed in a similar fashion.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(537),alt:"Select Default Readers"}})]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Users and groups can be differentiated by the type column icon and email address. All assignable users will have an email address and single person icon. All group assignable groups will display "),t("em",[e._v('"n/a"')]),e._v(" for an email address and a multi person icon.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{550:function(e,t,a){e.exports=a.p+"assets/img/user-configuration.5c0e0c9d.png"},551:function(e,t,a){e.exports=a.p+"assets/img/manage-default-owners.47c6a75a.png"},552:function(e,t,a){e.exports=a.p+"assets/img/select-default-owners.1e72e4ce.png"},553:function(e,t,a){e.exports=a.p+"assets/img/manage-default-readers.c6e7c9ba.png"},554:function(e,t,a){e.exports=a.p+"assets/img/select-default-readers.de910329.png"},659:function(e,t,a){"use strict";a.r(t);var s=a(69),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"managing-default-users"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#managing-default-users"}},[e._v("#")]),e._v(" Managing Default Users")]),e._v(" "),t("p",[e._v("By default, the creator of a CaSS framework, competency, or other object is assigned as the sole owner of that record. By using the "),t("em",[t("strong",[e._v("user configuration")])]),e._v(" section of the configuration, other specified users and groups can be assigned as owners and readers to objects created in the framework/competency editor that use the configuration.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(550),alt:"User configuration"}})]),e._v(" "),t("h2",{attrs:{id:"default-owners"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#default-owners"}},[e._v("#")]),e._v(" Default Owners")]),e._v(" "),t("p",[e._v("Users and groups added to this section are automatically added to the owner list of any object created in the framework/competency editor that use this configuration. To manage the list of default owners, click the "),t("em",[t("strong",[e._v("manage default owners")])]),e._v(" button in the "),t("em",[t("strong",[e._v("default owners")])]),e._v(" section.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(551),alt:"Manage Default Owners"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("select default owners")])]),e._v(" dialogue window is displayed. Select the desired default owner entries and click the "),t("em",[t("strong",[e._v("apply")])]),e._v(" button in the bottom right of the dialogue window. Default owners can also be removed in a similar fashion.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(552),alt:"Select Default Owners"}})]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Users and groups can be differentiated by the type column icon and email address. All assignable users will have an email address and single person icon. All group assignable groups will display "),t("em",[e._v('"n/a"')]),e._v(" for an email address and a multi person icon.")])]),e._v(" "),t("h2",{attrs:{id:"default-readers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#default-readers"}},[e._v("#")]),e._v(" Default Readers")]),e._v(" "),t("p",[e._v("Users and groups added to this section are automatically added to the reader list of any object created in the framework/competency editor that use this configuration. To manage the list of default owners, click the "),t("em",[t("strong",[e._v("manage default owners")])]),e._v(" button in the "),t("em",[t("strong",[e._v("default owners")])]),e._v(" section.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(553),alt:"Manage Default Readers"}})]),e._v(" "),t("p",[e._v("Once clicked, the "),t("em",[t("strong",[e._v("select default readers")])]),e._v(" dialogue window is displayed. Select the desired default reader entries and click the "),t("em",[t("strong",[e._v("apply")])]),e._v(" button in the bottom right of the dialogue window. Note: Default readers can also be removed in a similar fashion.")]),e._v(" "),t("p",[t("img",{attrs:{src:a(554),alt:"Select Default Readers"}})]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("Users and groups can be differentiated by the type column icon and email address. All assignable users will have an email address and single person icon. All group assignable groups will display "),t("em",[e._v('"n/a"')]),e._v(" for an email address and a multi person icon.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/31.fc1b5e7b.js.gz b/docs/assets/js/31.fc1b5e7b.js.gz new file mode 100644 index 000000000..1f91a2383 Binary files /dev/null and b/docs/assets/js/31.fc1b5e7b.js.gz differ diff --git a/docs/assets/js/33.6efe44c6.js.gz b/docs/assets/js/33.6efe44c6.js.gz deleted file mode 100644 index 0145b74ef..000000000 Binary files a/docs/assets/js/33.6efe44c6.js.gz and /dev/null differ diff --git a/docs/assets/js/33.6efe44c6.js b/docs/assets/js/33.896bb601.js similarity index 92% rename from docs/assets/js/33.6efe44c6.js rename to docs/assets/js/33.896bb601.js index 41f92daeb..83a45d2bc 100644 --- a/docs/assets/js/33.6efe44c6.js +++ b/docs/assets/js/33.896bb601.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{575:function(e,t,o){e.exports=o.p+"assets/img/import-framework-button.fbbab476.png"},576:function(e,t,o){e.exports=o.p+"assets/img/importing-framework-page.7054f43f.png"},577:function(e,t,o){e.exports=o.p+"assets/img/importing-open-directory.46eb1968.png"},578:function(e,t,o){e.exports=o.p+"assets/img/importing-cass-directories.ff5aaa2b.png"},664:function(e,t,o){"use strict";o.r(t);var r=o(69),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"importing-a-competency-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-a-competency-framework"}},[e._v("#")]),e._v(" Importing a Competency Framework")]),e._v(" "),t("p",[e._v("The process of Importing a new framework is also relatively simple. From the frameworks tab on the sidebar, users have the ability to view all existing frameworks within the system. At the top of the page is a list of options which allow users to import new frameworks into the database of existing frameworks.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(575),alt:"CAT Competency Framework Management - Import Frameworks"}})]),e._v(" "),t("p",[e._v("After clicking the import framework button users will be prompted with a new page where they have the ability to select the source of the frameworks they are trying to import. Options include: "),t("em",[t("strong",[e._v("File Import, Remote Server, Paste Text")])]),e._v(", and "),t("em",[t("strong",[e._v("URL Source")])]),e._v(".")]),e._v(" "),t("p",[e._v("All import types have instructions and guidelines in the panel on the right side of the screen.")]),e._v(" "),t("h2",{attrs:{id:"importing-from-a-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-a-file"}},[e._v("#")]),e._v(" Importing From a File")]),e._v(" "),t("p",[e._v("To import a framwork from a file:")]),e._v(" "),t("ul",[t("li",[e._v('Click on "File Import"')]),e._v(" "),t("li",[e._v("Select the desired source and drag the framework into the dotted window displayed below.\n"),t("ul",[t("li",[e._v("You can upload "),t("em",[e._v("csv, json,")]),e._v(" and "),t("em",[e._v("xml")]),e._v(" files in specific formats")]),e._v(" "),t("li",[t("em",[e._v("Html, pdf,")]),e._v(" and "),t("em",[e._v("docx")]),e._v(" formats are also experimentally supported")]),e._v(" "),t("li",[e._v("Example files and templates are linked from the panel on the right side of the screen.")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:o(576),alt:"CAT Competency Framework Management - Importing Frameworks"}})]),e._v(" "),t("p",[e._v("Once imported, users can select the process files button and the desired framework will be imported into the your CaSS Authoring Tool database.")]),e._v(" "),t("h2",{attrs:{id:"importing-from-an-existing-cass-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-an-existing-cass-repository"}},[e._v("#")]),e._v(" Importing From an Existing CaSS Repository")]),e._v(" "),t("p",[t("strong",[e._v("To import a framework from a CaSS respository:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("Remote Server")])])]),e._v(" "),t("li",[e._v("Set the input for "),t("em",[t("strong",[e._v("Paste URL Endpoint Of Server")])]),e._v(" to the CaSS endpoint with the framework(s) you would like to import.")]),e._v(" "),t("li",[e._v("Click on "),t("em",[t("strong",[e._v("connect to cass endpoint")])])])])]),e._v(" "),t("p",[t("strong",[e._v("To search for frameworks within the CaSS repository:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Enter a search term in the "),t("em",[t("strong",[e._v("Search for frameworks...")])]),e._v(" field\n"),t("ul",[t("li",[e._v("Leave this field blank to return all frameworks within the set filters below")])])])])]),e._v(" "),t("p",[t("strong",[e._v("To search all frameworks within the CaSS repository:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on the dropdown list under "),t("em",[t("strong",[e._v("Select A Directory To Filter Results")])])]),e._v(" "),t("li",[e._v("Select "),t("em",[t("strong",[e._v("All frameworks")])])])])]),e._v(" "),t("p",[t("strong",[e._v("If the CaSS repository you are importing from contains directories, then you can import frameworks located within a directory. To view the frameworks within a specific directory:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on the dropdown list under "),t("em",[t("strong",[e._v("Select A Directory To Filter Results")])])]),e._v(" "),t("li",[e._v("Select the desired directory")]),e._v(" "),t("li",[e._v("You will then see a list of frameworks (if any) in the directory")])])]),e._v(" "),t("p",[e._v("When you select a directory to view the contents of, the directory name will show above the list of frameworks within it AND the list of directories to filter by will be updated to reflect any subdirectories located within that directory.")]),e._v(" "),t("p",[t("strong",[e._v("To navigate back to the parent directory:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on the "),t("em",[e._v("Back")]),e._v(" button in the bottom right corner")])])]),e._v(" "),t("p",[t("img",{attrs:{src:o(577),alt:"CAT Competency Framework Management - Importing Open Directory"}})]),e._v(" "),t("p",[e._v('You can select one or more individual frameworks to import by clicking on each framwork name. When you have selected the frameworks that you would like to import, click "import".')]),e._v(" "),t("p",[t("img",{attrs:{src:o(578),alt:"CAT Competency Framework Management - Importing CaSS Repository"}})]),e._v(" "),t("h2",{attrs:{id:"importing-from-an-ims-case-repositories"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-an-ims-case-repositories"}},[e._v("#")]),e._v(" Importing From an IMS CASE Repositories")]),e._v(" "),t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("Remote Server")])])]),e._v(" "),t("li",[e._v("Set the input for "),t("em",[t("strong",[e._v("Paste URL Endpoint Of Server")])]),e._v(" to the IMS CASE endpoint with the framework(s) you would like to import")]),e._v(" "),t("li",[e._v("Click on "),t("em",[t("strong",[e._v("connect to case endpoint")])])])]),e._v(" "),t("h2",{attrs:{id:"importing-from-ctdl-asn-json-ld-graphs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-ctdl-asn-json-ld-graphs"}},[e._v("#")]),e._v(" Importing From CTDL-ASN JSON-LD Graphs")]),e._v(" "),t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("URL Source")])])]),e._v(" "),t("li",[e._v("Set the input for "),t("em",[t("strong",[e._v("Paste URL Document Of Document")])]),e._v(" to the link to the CTDL-ASN JSON-LD graphs")]),e._v(" "),t("li",[e._v("Click on "),t("em",[t("strong",[e._v("import framework")])])])]),e._v(" "),t("h2",{attrs:{id:"importing-from-text"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-text"}},[e._v("#")]),e._v(" Importing From Text")]),e._v(" "),t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("Paste Text")])]),e._v(" to input lists of competency names")]),e._v(" "),t("li",[e._v("Copy and paste from a document or start typing in the text area")]),e._v(" "),t("li",[e._v("Enter the name of the framework")]),e._v(" "),t("li",[e._v("List each competency on a separate line\n"),t("ul",[t("li",[e._v("One space indicates one level of indentation in the hierarchy")])])]),e._v(" "),t("li",[e._v("To the right of the text box, you will see a preview of the hierarchy you are creating. You can make any needed adjustments before importing")]),e._v(" "),t("li",[e._v("Click "),t("em",[t("strong",[e._v("import")])]),e._v(" when done to complete the immport process and view the framework in the editor")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{583:function(e,t,o){e.exports=o.p+"assets/img/import-framework-button.fbbab476.png"},584:function(e,t,o){e.exports=o.p+"assets/img/importing-framework-page.7054f43f.png"},585:function(e,t,o){e.exports=o.p+"assets/img/importing-open-directory.46eb1968.png"},586:function(e,t,o){e.exports=o.p+"assets/img/importing-cass-directories.ff5aaa2b.png"},665:function(e,t,o){"use strict";o.r(t);var r=o(69),i=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"importing-a-competency-framework"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-a-competency-framework"}},[e._v("#")]),e._v(" Importing a Competency Framework")]),e._v(" "),t("p",[e._v("The process of Importing a new framework is also relatively simple. From the frameworks tab on the sidebar, users have the ability to view all existing frameworks within the system. At the top of the page is a list of options which allow users to import new frameworks into the database of existing frameworks.")]),e._v(" "),t("p",[t("img",{attrs:{src:o(583),alt:"CAT Competency Framework Management - Import Frameworks"}})]),e._v(" "),t("p",[e._v("After clicking the import framework button users will be prompted with a new page where they have the ability to select the source of the frameworks they are trying to import. Options include: "),t("em",[t("strong",[e._v("File Import, Remote Server, Paste Text")])]),e._v(", and "),t("em",[t("strong",[e._v("URL Source")])]),e._v(".")]),e._v(" "),t("p",[e._v("All import types have instructions and guidelines in the panel on the right side of the screen.")]),e._v(" "),t("h2",{attrs:{id:"importing-from-a-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-a-file"}},[e._v("#")]),e._v(" Importing From a File")]),e._v(" "),t("p",[e._v("To import a framwork from a file:")]),e._v(" "),t("ul",[t("li",[e._v('Click on "File Import"')]),e._v(" "),t("li",[e._v("Select the desired source and drag the framework into the dotted window displayed below.\n"),t("ul",[t("li",[e._v("You can upload "),t("em",[e._v("csv, json,")]),e._v(" and "),t("em",[e._v("xml")]),e._v(" files in specific formats")]),e._v(" "),t("li",[t("em",[e._v("Html, pdf,")]),e._v(" and "),t("em",[e._v("docx")]),e._v(" formats are also experimentally supported")]),e._v(" "),t("li",[e._v("Example files and templates are linked from the panel on the right side of the screen.")])])])]),e._v(" "),t("p",[t("img",{attrs:{src:o(584),alt:"CAT Competency Framework Management - Importing Frameworks"}})]),e._v(" "),t("p",[e._v("Once imported, users can select the process files button and the desired framework will be imported into the your CaSS Authoring Tool database.")]),e._v(" "),t("h2",{attrs:{id:"importing-from-an-existing-cass-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-an-existing-cass-repository"}},[e._v("#")]),e._v(" Importing From an Existing CaSS Repository")]),e._v(" "),t("p",[t("strong",[e._v("To import a framework from a CaSS respository:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("Remote Server")])])]),e._v(" "),t("li",[e._v("Set the input for "),t("em",[t("strong",[e._v("Paste URL Endpoint Of Server")])]),e._v(" to the CaSS endpoint with the framework(s) you would like to import.")]),e._v(" "),t("li",[e._v("Click on "),t("em",[t("strong",[e._v("connect to cass endpoint")])])])])]),e._v(" "),t("p",[t("strong",[e._v("To search for frameworks within the CaSS repository:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Enter a search term in the "),t("em",[t("strong",[e._v("Search for frameworks...")])]),e._v(" field\n"),t("ul",[t("li",[e._v("Leave this field blank to return all frameworks within the set filters below")])])])])]),e._v(" "),t("p",[t("strong",[e._v("To search all frameworks within the CaSS repository:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on the dropdown list under "),t("em",[t("strong",[e._v("Select A Directory To Filter Results")])])]),e._v(" "),t("li",[e._v("Select "),t("em",[t("strong",[e._v("All frameworks")])])])])]),e._v(" "),t("p",[t("strong",[e._v("If the CaSS repository you are importing from contains directories, then you can import frameworks located within a directory. To view the frameworks within a specific directory:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on the dropdown list under "),t("em",[t("strong",[e._v("Select A Directory To Filter Results")])])]),e._v(" "),t("li",[e._v("Select the desired directory")]),e._v(" "),t("li",[e._v("You will then see a list of frameworks (if any) in the directory")])])]),e._v(" "),t("p",[e._v("When you select a directory to view the contents of, the directory name will show above the list of frameworks within it AND the list of directories to filter by will be updated to reflect any subdirectories located within that directory.")]),e._v(" "),t("p",[t("strong",[e._v("To navigate back to the parent directory:")])]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Click on the "),t("em",[e._v("Back")]),e._v(" button in the bottom right corner")])])]),e._v(" "),t("p",[t("img",{attrs:{src:o(585),alt:"CAT Competency Framework Management - Importing Open Directory"}})]),e._v(" "),t("p",[e._v('You can select one or more individual frameworks to import by clicking on each framwork name. When you have selected the frameworks that you would like to import, click "import".')]),e._v(" "),t("p",[t("img",{attrs:{src:o(586),alt:"CAT Competency Framework Management - Importing CaSS Repository"}})]),e._v(" "),t("h2",{attrs:{id:"importing-from-an-ims-case-repositories"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-an-ims-case-repositories"}},[e._v("#")]),e._v(" Importing From an IMS CASE Repositories")]),e._v(" "),t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("Remote Server")])])]),e._v(" "),t("li",[e._v("Set the input for "),t("em",[t("strong",[e._v("Paste URL Endpoint Of Server")])]),e._v(" to the IMS CASE endpoint with the framework(s) you would like to import")]),e._v(" "),t("li",[e._v("Click on "),t("em",[t("strong",[e._v("connect to case endpoint")])])])]),e._v(" "),t("h2",{attrs:{id:"importing-from-ctdl-asn-json-ld-graphs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-ctdl-asn-json-ld-graphs"}},[e._v("#")]),e._v(" Importing From CTDL-ASN JSON-LD Graphs")]),e._v(" "),t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("URL Source")])])]),e._v(" "),t("li",[e._v("Set the input for "),t("em",[t("strong",[e._v("Paste URL Document Of Document")])]),e._v(" to the link to the CTDL-ASN JSON-LD graphs")]),e._v(" "),t("li",[e._v("Click on "),t("em",[t("strong",[e._v("import framework")])])])]),e._v(" "),t("h2",{attrs:{id:"importing-from-text"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#importing-from-text"}},[e._v("#")]),e._v(" Importing From Text")]),e._v(" "),t("ul",[t("li",[e._v("Click on "),t("em",[t("strong",[e._v("Paste Text")])]),e._v(" to input lists of competency names")]),e._v(" "),t("li",[e._v("Copy and paste from a document or start typing in the text area")]),e._v(" "),t("li",[e._v("Enter the name of the framework")]),e._v(" "),t("li",[e._v("List each competency on a separate line\n"),t("ul",[t("li",[e._v("One space indicates one level of indentation in the hierarchy")])])]),e._v(" "),t("li",[e._v("To the right of the text box, you will see a preview of the hierarchy you are creating. You can make any needed adjustments before importing")]),e._v(" "),t("li",[e._v("Click "),t("em",[t("strong",[e._v("import")])]),e._v(" when done to complete the immport process and view the framework in the editor")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/33.896bb601.js.gz b/docs/assets/js/33.896bb601.js.gz new file mode 100644 index 000000000..4c7743490 Binary files /dev/null and b/docs/assets/js/33.896bb601.js.gz differ diff --git a/docs/assets/js/39.28044aeb.js b/docs/assets/js/39.728f5bf5.js similarity index 95% rename from docs/assets/js/39.28044aeb.js rename to docs/assets/js/39.728f5bf5.js index 3e3b2d86f..960666513 100644 --- a/docs/assets/js/39.28044aeb.js +++ b/docs/assets/js/39.728f5bf5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{531:function(s,t){s.exports="data:image/png;base64,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"},532:function(s,t,e){s.exports=e.p+"assets/img/assertion-share-dialog.0dd3facc.png"},657:function(s,t,e){"use strict";e.r(t);var i=e(69),r=Object(i.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"sharing-assertions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sharing-assertions"}},[s._v("#")]),s._v(" Sharing Assertions")]),s._v(" "),t("p",[t("strong",[s._v("Sharing assertions is only available to logged in users, ensure you are logged in to the application before continuing.")])]),s._v(" "),t("p",[s._v("To share assertions, click the button indicated below in the left navigation bar.")]),s._v(" "),t("p",[t("img",{attrs:{src:e(531),alt:"Assertion Share Button"}})]),s._v(" "),t("p",[s._v("In the resulting dialog, select the subject(s) of the assertions and the user(s) whom you wish to share those assertion with, and then press the share button.")]),s._v(" "),t("p",[t("img",{attrs:{src:e(532),alt:"Assertion Share Dialog"}})])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{503:function(s,t){s.exports="data:image/png;base64,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"},504:function(s,t,e){s.exports=e.p+"assets/img/assertion-share-dialog.0dd3facc.png"},655:function(s,t,e){"use strict";e.r(t);var i=e(69),r=Object(i.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"sharing-assertions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sharing-assertions"}},[s._v("#")]),s._v(" Sharing Assertions")]),s._v(" "),t("p",[t("strong",[s._v("Sharing assertions is only available to logged in users, ensure you are logged in to the application before continuing.")])]),s._v(" "),t("p",[s._v("To share assertions, click the button indicated below in the left navigation bar.")]),s._v(" "),t("p",[t("img",{attrs:{src:e(503),alt:"Assertion Share Button"}})]),s._v(" "),t("p",[s._v("In the resulting dialog, select the subject(s) of the assertions and the user(s) whom you wish to share those assertion with, and then press the share button.")]),s._v(" "),t("p",[t("img",{attrs:{src:e(504),alt:"Assertion Share Dialog"}})])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/39.28044aeb.js.gz b/docs/assets/js/39.728f5bf5.js.gz similarity index 93% rename from docs/assets/js/39.28044aeb.js.gz rename to docs/assets/js/39.728f5bf5.js.gz index cfb2af5be..962b8f30e 100644 Binary files a/docs/assets/js/39.28044aeb.js.gz and b/docs/assets/js/39.728f5bf5.js.gz differ diff --git a/docs/assets/js/48.34518dac.js.gz b/docs/assets/js/48.34518dac.js.gz deleted file mode 100644 index 1d62437dc..000000000 Binary files a/docs/assets/js/48.34518dac.js.gz and /dev/null differ diff --git a/docs/assets/js/48.34518dac.js b/docs/assets/js/48.76841a7f.js similarity index 99% rename from docs/assets/js/48.34518dac.js rename to docs/assets/js/48.76841a7f.js index 859d43f40..595195ca4 100644 --- a/docs/assets/js/48.34518dac.js +++ b/docs/assets/js/48.76841a7f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{668:function(a,e,t){"use strict";t.r(e);var s=t(69),o=Object(s.a)({},(function(){var a=this,e=a._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"cass-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-configuration"}},[a._v("#")]),a._v(" CaSS Configuration")]),a._v(" "),e("p",[a._v("There are a number of environment variables that can be configured to change the ways that CaSS behaves.")]),a._v(" "),e("h2",{attrs:{id:"https"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#https"}},[a._v("#")]),a._v(" "),e("code",[a._v("HTTPS")])]),a._v(" "),e("p",[a._v("Should CaSS use HTTPS. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"elasticsearch-endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#elasticsearch-endpoint"}},[a._v("#")]),a._v(" "),e("code",[a._v("ELASTICSEARCH_ENDPOINT")])]),a._v(" "),e("p",[a._v("URL for the elastic search service. Defaults to "),e("code",[a._v("http://localhost:9200")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-loopback"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-loopback"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_LOOPBACK")])]),a._v(" "),e("p",[a._v("URL for the CaSS API. Defaults to "),e("code",[a._v("http://localhost/api/")]),a._v(" or "),e("code",[a._v("https://localhost/api/")]),a._v(", depending on if https is enabled.")]),a._v(" "),e("h2",{attrs:{id:"cass-loopback-proxy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-loopback-proxy"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_LOOPBACK_PROXY")])]),a._v(" "),e("p",[a._v("Optional URL for the loopback proxy. Used when the endpoint that CaSS uses to talk to itself is different than how it represents itself, for example the loopback proxy may be on localhost.")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-enabled"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-enabled"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_ENABLED")])]),a._v(" "),e("p",[a._v("Should CaSS use OpenID Connect. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-issuer-base-url"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-issuer-base-url"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_ISSUER_BASE_URL")])]),a._v(" "),e("p",[a._v("URL for the OpenID Connect issuer, e.g. Keycloak. Defaults to "),e("code",[a._v("https://dev.keycloak.eduworks.com/auth/realms/test-realm/")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-client-id"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-client-id"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_CLIENT_ID")])]),a._v(" "),e("p",[a._v("ID of the client being used in OpenID Connect. Defaults to "),e("code",[a._v("cass")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-secret"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-secret"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_SECRET")])]),a._v(" "),e("p",[a._v("Secret key for the above client.")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-base-url"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-base-url"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_BASE_URL")])]),a._v(" "),e("p",[a._v("Base URL for login and logout API when using OpenID Connect. Defaults to "),e("code",[a._v("http://localhost/")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-jwt-enabled"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-jwt-enabled"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_JWT_ENABLED")])]),a._v(" "),e("p",[a._v("Should CaSS use JWT for authentication. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-jwt-secret"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-jwt-secret"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_JWT_SECRET")])]),a._v(" "),e("p",[a._v("Secet key for JWT. Defaults to "),e("code",[a._v("cass")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-jwt-algorithm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-jwt-algorithm"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_JWT_ALGORITHM")])]),a._v(" "),e("p",[a._v("JWT Algorithm to use. Defaults to "),e("code",[a._v("HS256")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-banner-message"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-banner-message"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_BANNER_MESSAGE")])]),a._v(" "),e("p",[a._v("Optional message to display in banners along the top and bottom of the CaSS Editor.")]),a._v(" "),e("h2",{attrs:{id:"cass-banner-text-color"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-banner-text-color"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_BANNER_TEXT_COLOR")])]),a._v(" "),e("p",[a._v("Optional color for the banner message text. Defaults to the CaSS Editor theme colors.")]),a._v(" "),e("h2",{attrs:{id:"cass-banner-background-color"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-banner-background-color"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_BANNER_BACKGROUND_COLOR")])]),a._v(" "),e("p",[a._v("Optional color for banner background. Defaults to the CaSS Editor theme colors.")]),a._v(" "),e("h2",{attrs:{id:"cass-external-endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-external-endpoint"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_EXTERNAL_ENDPOINT")])]),a._v(" "),e("p",[a._v("Optional URL for a CaSS instance to use as the endpoint for creating alignments/relations, instead of this CaSS instance.")]),a._v(" "),e("h2",{attrs:{id:"cass-replication-endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-replication-endpoint"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_REPLICATION_ENDPOINT")])]),a._v(" "),e("p",[a._v("Optional URL of another CaSS instance to replicate data to.")]),a._v(" "),e("h2",{attrs:{id:"cass-replication-ppk"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-replication-ppk"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_REPLICATION_PPK")])]),a._v(" "),e("p",[a._v("The key for the above replication endpoint.")]),a._v(" "),e("h2",{attrs:{id:"profile-repository-cache"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#profile-repository-cache"}},[a._v("#")]),a._v(" "),e("code",[a._v("PROFILE_REPOSITORY_CACHE")])]),a._v(" "),e("p",[a._v("Should CaSS cache computed profiles in a repository. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"profile-cache"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#profile-cache"}},[a._v("#")]),a._v(" "),e("code",[a._v("PROFILE_CACHE")])]),a._v(" "),e("p",[a._v("Should CaSS cache computed profiles in memory. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"profile-ppk"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#profile-ppk"}},[a._v("#")]),a._v(" "),e("code",[a._v("PROFILE_PPK")])]),a._v(" "),e("p",[a._v("Optional private key for CaSS to use when querying for a profile.")]),a._v(" "),e("h2",{attrs:{id:"default-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#default-plugins"}},[a._v("#")]),a._v(" "),e("code",[a._v("DEFAULT_PLUGINS")])]),a._v(" "),e("p",[a._v("Optional array of URLs to plugins to be made available within the CaSS Editor. If deployed at the same URL as CaSS, the base of the URL can be omitted: "),e("code",[a._v('["/my-feature"]')]),a._v(" is transformed to "),e("code",[a._v('"https://my-cass-instance/my-feature"')]),a._v(". Available in 1.5.6+.")]),a._v(" "),e("h2",{attrs:{id:"motd-message"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#motd-message"}},[a._v("#")]),a._v(" "),e("code",[a._v("MOTD_MESSAGE")])]),a._v(" "),e("p",[a._v("Optional message to display as a popup when users open the CaSS Editor.")]),a._v(" "),e("h2",{attrs:{id:"motd-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#motd-title"}},[a._v("#")]),a._v(" "),e("code",[a._v("MOTD_TITLE")])]),a._v(" "),e("p",[a._v("Optional title for the above message.")]),a._v(" "),e("h2",{attrs:{id:"disabled-adapters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#disabled-adapters"}},[a._v("#")]),a._v(" "),e("code",[a._v("DISABLED_ADAPTERS")])]),a._v(" "),e("p",[a._v("Optional comma separated list of adapters to disable in CaSS. Valid options include: "),e("code",[a._v("asn, case, ceasn, jsonld, badge, xapi, profile")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"max-connections"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#max-connections"}},[a._v("#")]),a._v(" "),e("code",[a._v("MAX_CONNECTIONS")])]),a._v(" "),e("p",[a._v("Optional limit on the number of concurrent connections to the CaSS server. Should be an integer value.")]),a._v(" "),e("h2",{attrs:{id:"log-filtered-categories"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#log-filtered-categories"}},[a._v("#")]),a._v(" "),e("code",[a._v("LOG_FILTERED_CATEGORIES")])]),a._v(" "),e("p",[a._v("Optional comma separated list of logging categories to disable. Valid options include: "),e("code",[a._v("sys, auth, msg, fs, net, stor, adap, prof")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"log-filtered-severities"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#log-filtered-severities"}},[a._v("#")]),a._v(" "),e("code",[a._v("LOG_FILTERED_SEVERITIES")])]),a._v(" "),e("p",[a._v("Optional comma separated list of logging severities to disable. Valid options include: "),e("code",[a._v("EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"log-filtered-messages"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#log-filtered-messages"}},[a._v("#")]),a._v(" "),e("code",[a._v("LOG_FILTERED_MESSAGES")])]),a._v(" "),e("p",[a._v("Optional comma separated list of specific log messages to disable.")]),a._v(" "),e("h2",{attrs:{id:"smtp-host"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-host"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_HOST")])]),a._v(" "),e("p",[a._v("Optional SMTP server to use in order to send emergency email warnings regarding the CaSS instance.")]),a._v(" "),e("h2",{attrs:{id:"smtp-port"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-port"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_PORT")])]),a._v(" "),e("p",[a._v("Optional SMTP port for the above SMTP server. Defaults to "),e("code",[a._v("587")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"smtp-user"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-user"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_USER")])]),a._v(" "),e("p",[a._v("Optional username for the above SMTP server.")]),a._v(" "),e("h2",{attrs:{id:"smtp-pass"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-pass"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_PASS")])]),a._v(" "),e("p",[a._v("Optional password for the above SMTP server.")]),a._v(" "),e("h2",{attrs:{id:"smtp-recipients"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-recipients"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_RECIPIENTS")])]),a._v(" "),e("p",[a._v("Optional comma separated list of email addresses which should receive email notifications from the above SMTP server.")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{669:function(a,e,t){"use strict";t.r(e);var s=t(69),o=Object(s.a)({},(function(){var a=this,e=a._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"cass-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-configuration"}},[a._v("#")]),a._v(" CaSS Configuration")]),a._v(" "),e("p",[a._v("There are a number of environment variables that can be configured to change the ways that CaSS behaves.")]),a._v(" "),e("h2",{attrs:{id:"https"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#https"}},[a._v("#")]),a._v(" "),e("code",[a._v("HTTPS")])]),a._v(" "),e("p",[a._v("Should CaSS use HTTPS. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"elasticsearch-endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#elasticsearch-endpoint"}},[a._v("#")]),a._v(" "),e("code",[a._v("ELASTICSEARCH_ENDPOINT")])]),a._v(" "),e("p",[a._v("URL for the elastic search service. Defaults to "),e("code",[a._v("http://localhost:9200")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-loopback"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-loopback"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_LOOPBACK")])]),a._v(" "),e("p",[a._v("URL for the CaSS API. Defaults to "),e("code",[a._v("http://localhost/api/")]),a._v(" or "),e("code",[a._v("https://localhost/api/")]),a._v(", depending on if https is enabled.")]),a._v(" "),e("h2",{attrs:{id:"cass-loopback-proxy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-loopback-proxy"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_LOOPBACK_PROXY")])]),a._v(" "),e("p",[a._v("Optional URL for the loopback proxy. Used when the endpoint that CaSS uses to talk to itself is different than how it represents itself, for example the loopback proxy may be on localhost.")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-enabled"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-enabled"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_ENABLED")])]),a._v(" "),e("p",[a._v("Should CaSS use OpenID Connect. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-issuer-base-url"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-issuer-base-url"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_ISSUER_BASE_URL")])]),a._v(" "),e("p",[a._v("URL for the OpenID Connect issuer, e.g. Keycloak. Defaults to "),e("code",[a._v("https://dev.keycloak.eduworks.com/auth/realms/test-realm/")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-client-id"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-client-id"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_CLIENT_ID")])]),a._v(" "),e("p",[a._v("ID of the client being used in OpenID Connect. Defaults to "),e("code",[a._v("cass")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-secret"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-secret"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_SECRET")])]),a._v(" "),e("p",[a._v("Secret key for the above client.")]),a._v(" "),e("h2",{attrs:{id:"cass-oidc-base-url"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-oidc-base-url"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_OIDC_BASE_URL")])]),a._v(" "),e("p",[a._v("Base URL for login and logout API when using OpenID Connect. Defaults to "),e("code",[a._v("http://localhost/")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-jwt-enabled"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-jwt-enabled"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_JWT_ENABLED")])]),a._v(" "),e("p",[a._v("Should CaSS use JWT for authentication. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-jwt-secret"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-jwt-secret"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_JWT_SECRET")])]),a._v(" "),e("p",[a._v("Secet key for JWT. Defaults to "),e("code",[a._v("cass")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-jwt-algorithm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-jwt-algorithm"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_JWT_ALGORITHM")])]),a._v(" "),e("p",[a._v("JWT Algorithm to use. Defaults to "),e("code",[a._v("HS256")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"cass-banner-message"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-banner-message"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_BANNER_MESSAGE")])]),a._v(" "),e("p",[a._v("Optional message to display in banners along the top and bottom of the CaSS Editor.")]),a._v(" "),e("h2",{attrs:{id:"cass-banner-text-color"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-banner-text-color"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_BANNER_TEXT_COLOR")])]),a._v(" "),e("p",[a._v("Optional color for the banner message text. Defaults to the CaSS Editor theme colors.")]),a._v(" "),e("h2",{attrs:{id:"cass-banner-background-color"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-banner-background-color"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_BANNER_BACKGROUND_COLOR")])]),a._v(" "),e("p",[a._v("Optional color for banner background. Defaults to the CaSS Editor theme colors.")]),a._v(" "),e("h2",{attrs:{id:"cass-external-endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-external-endpoint"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_EXTERNAL_ENDPOINT")])]),a._v(" "),e("p",[a._v("Optional URL for a CaSS instance to use as the endpoint for creating alignments/relations, instead of this CaSS instance.")]),a._v(" "),e("h2",{attrs:{id:"cass-replication-endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-replication-endpoint"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_REPLICATION_ENDPOINT")])]),a._v(" "),e("p",[a._v("Optional URL of another CaSS instance to replicate data to.")]),a._v(" "),e("h2",{attrs:{id:"cass-replication-ppk"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-replication-ppk"}},[a._v("#")]),a._v(" "),e("code",[a._v("CASS_REPLICATION_PPK")])]),a._v(" "),e("p",[a._v("The key for the above replication endpoint.")]),a._v(" "),e("h2",{attrs:{id:"profile-repository-cache"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#profile-repository-cache"}},[a._v("#")]),a._v(" "),e("code",[a._v("PROFILE_REPOSITORY_CACHE")])]),a._v(" "),e("p",[a._v("Should CaSS cache computed profiles in a repository. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"profile-cache"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#profile-cache"}},[a._v("#")]),a._v(" "),e("code",[a._v("PROFILE_CACHE")])]),a._v(" "),e("p",[a._v("Should CaSS cache computed profiles in memory. Defaults to "),e("code",[a._v("false")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"profile-ppk"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#profile-ppk"}},[a._v("#")]),a._v(" "),e("code",[a._v("PROFILE_PPK")])]),a._v(" "),e("p",[a._v("Optional private key for CaSS to use when querying for a profile.")]),a._v(" "),e("h2",{attrs:{id:"default-plugins"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#default-plugins"}},[a._v("#")]),a._v(" "),e("code",[a._v("DEFAULT_PLUGINS")])]),a._v(" "),e("p",[a._v("Optional array of URLs to plugins to be made available within the CaSS Editor. If deployed at the same URL as CaSS, the base of the URL can be omitted: "),e("code",[a._v('["/my-feature"]')]),a._v(" is transformed to "),e("code",[a._v('"https://my-cass-instance/my-feature"')]),a._v(". Available in 1.5.6+.")]),a._v(" "),e("h2",{attrs:{id:"motd-message"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#motd-message"}},[a._v("#")]),a._v(" "),e("code",[a._v("MOTD_MESSAGE")])]),a._v(" "),e("p",[a._v("Optional message to display as a popup when users open the CaSS Editor.")]),a._v(" "),e("h2",{attrs:{id:"motd-title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#motd-title"}},[a._v("#")]),a._v(" "),e("code",[a._v("MOTD_TITLE")])]),a._v(" "),e("p",[a._v("Optional title for the above message.")]),a._v(" "),e("h2",{attrs:{id:"disabled-adapters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#disabled-adapters"}},[a._v("#")]),a._v(" "),e("code",[a._v("DISABLED_ADAPTERS")])]),a._v(" "),e("p",[a._v("Optional comma separated list of adapters to disable in CaSS. Valid options include: "),e("code",[a._v("asn, case, ceasn, jsonld, badge, xapi, profile")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"max-connections"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#max-connections"}},[a._v("#")]),a._v(" "),e("code",[a._v("MAX_CONNECTIONS")])]),a._v(" "),e("p",[a._v("Optional limit on the number of concurrent connections to the CaSS server. Should be an integer value.")]),a._v(" "),e("h2",{attrs:{id:"log-filtered-categories"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#log-filtered-categories"}},[a._v("#")]),a._v(" "),e("code",[a._v("LOG_FILTERED_CATEGORIES")])]),a._v(" "),e("p",[a._v("Optional comma separated list of logging categories to disable. Valid options include: "),e("code",[a._v("sys, auth, msg, fs, net, stor, adap, prof")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"log-filtered-severities"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#log-filtered-severities"}},[a._v("#")]),a._v(" "),e("code",[a._v("LOG_FILTERED_SEVERITIES")])]),a._v(" "),e("p",[a._v("Optional comma separated list of logging severities to disable. Valid options include: "),e("code",[a._v("EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"log-filtered-messages"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#log-filtered-messages"}},[a._v("#")]),a._v(" "),e("code",[a._v("LOG_FILTERED_MESSAGES")])]),a._v(" "),e("p",[a._v("Optional comma separated list of specific log messages to disable.")]),a._v(" "),e("h2",{attrs:{id:"smtp-host"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-host"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_HOST")])]),a._v(" "),e("p",[a._v("Optional SMTP server to use in order to send emergency email warnings regarding the CaSS instance.")]),a._v(" "),e("h2",{attrs:{id:"smtp-port"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-port"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_PORT")])]),a._v(" "),e("p",[a._v("Optional SMTP port for the above SMTP server. Defaults to "),e("code",[a._v("587")]),a._v(".")]),a._v(" "),e("h2",{attrs:{id:"smtp-user"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-user"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_USER")])]),a._v(" "),e("p",[a._v("Optional username for the above SMTP server.")]),a._v(" "),e("h2",{attrs:{id:"smtp-pass"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-pass"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_PASS")])]),a._v(" "),e("p",[a._v("Optional password for the above SMTP server.")]),a._v(" "),e("h2",{attrs:{id:"smtp-recipients"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#smtp-recipients"}},[a._v("#")]),a._v(" "),e("code",[a._v("SMTP_RECIPIENTS")])]),a._v(" "),e("p",[a._v("Optional comma separated list of email addresses which should receive email notifications from the above SMTP server.")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/48.76841a7f.js.gz b/docs/assets/js/48.76841a7f.js.gz new file mode 100644 index 000000000..1ef7fd9b4 Binary files /dev/null and b/docs/assets/js/48.76841a7f.js.gz differ diff --git a/docs/assets/js/49.f42eb395.js b/docs/assets/js/49.956f545b.js similarity index 99% rename from docs/assets/js/49.f42eb395.js rename to docs/assets/js/49.956f545b.js index eb12424b4..e5d72b419 100644 --- a/docs/assets/js/49.f42eb395.js +++ b/docs/assets/js/49.956f545b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{672:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cass-installation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-installation"}},[e._v("#")]),e._v(" CaSS Installation")]),e._v(" "),t("p",[e._v("This is the installation guide for a CaSS instance. If you're just looking to work with an existing CaSS instance, you may be looking for the CaSS Library. See the "),t("a",{attrs:{href:"/dev/links-and-references"}},[e._v("Links")]),e._v(" section for more information.")]),e._v(" "),t("h2",{attrs:{id:"system-requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirements"}},[e._v("#")]),e._v(" System Requirements")]),e._v(" "),t("ul",[t("li",[e._v("4 GB of ram (can work with 2 GB with additional configuration)\n"),t("ul",[t("li",[e._v("ElasticSearch 7: 2 GB (can be reduced to 1 GB)")])])]),e._v(" "),t("li",[e._v("At least 8 GB of hard drive space.")])]),e._v(" "),t("h2",{attrs:{id:"cass-version-requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-version-requirements"}},[e._v("#")]),e._v(" CaSS Version Requirements")]),e._v(" "),t("p",[e._v("Minimum CaSS version selection for inclusion of CaSS Authoring Tools should be "),t("strong",[e._v("1.3")])]),e._v(" "),t("h2",{attrs:{id:"cat-cass-installation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cat-cass-installation"}},[e._v("#")]),e._v(" CAT/CaSS Installation")]),e._v(" "),t("h3",{attrs:{id:"linux-debian-ubuntu-amazon-and-other-fedora-derivatives"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux-debian-ubuntu-amazon-and-other-fedora-derivatives"}},[e._v("#")]),e._v(" Linux (Debian, Ubuntu, Amazon and other Fedora derivatives)")]),e._v(" "),t("p",[e._v("CaSS can be installed on linux through our Bash install script.")]),e._v(" "),t("p",[e._v("Install and Upgrade")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("wget")]),e._v(" https://raw.githubusercontent.com/cassproject/CASS/master/scripts/cassInstall.sh\n "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("chmod")]),e._v(" +x cassInstall.sh\n "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" ./cassInstall.sh\n")])])]),t("h2",{attrs:{id:"docker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#docker"}},[e._v("#")]),e._v(" Docker")]),e._v(" "),t("p",[e._v("Images for CASS are kept in Docker Hub under "),t("a",{attrs:{href:"https://hub.docker.com/r/cassproject/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("cassproject/cass"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("The following command will run the CaSS Standalone server with an interactive prompt and expose it on port 80 on the local machine.")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("docker")]),e._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-it")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-p80:80")]),e._v(" cassproject/cass\n")])])]),t("p",[e._v("Additionally, if you wish to use docker-compose or some other means of deploying CaSS in a constellation of servers, see "),t("a",{attrs:{href:"https://github.com/cassproject/CASS/blob/master/docker-compose.yml",target:"_blank",rel:"noopener noreferrer"}},[e._v("this docker-compose file"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[e._v("#")]),e._v(" Windows")]),e._v(" "),t("p",[e._v("Windows installation uses "),t("a",{attrs:{href:"https://chocolatey.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chocolatey"),t("OutboundLink")],1),e._v(" as a package manager. Chocolatey will be used to install all required CASS dependencies (maven, git, and elasticsearch).")]),e._v(" "),t("p",[e._v("If you would like to install these packages by hand or using another tool, please feel free.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://chocolatey.org/packages/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("CASS Package on Chocolatey"),t("OutboundLink")],1)]),e._v(" "),t("h3",{attrs:{id:"once"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#once"}},[e._v("#")]),e._v(" Once")]),e._v(" "),t("p",[e._v("From an elevated powershell:")]),e._v(" "),t("div",{staticClass:"language-batch extra-class"},[t("pre",{pre:!0,attrs:{class:"language-batch"}},[t("code",[t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("Set")]),e._v("-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("3072")]),e._v("; iex ((New-Object System.Net.WebClient")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(".DownloadString"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("'")]),e._v("https://community.chocolatey.org/install.ps1"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("refreshenv")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("choco")]),e._v(" install "),t("span",{pre:!0,attrs:{class:"token parameter attr-name"}},[e._v("-y")]),e._v(" cass")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("refreshenv")])]),e._v("\n")])])]),t("p",[e._v("Go to services, start "),t("code",[e._v("elasticsearch-service-x64")]),e._v(" and set it to start automatically.")]),e._v(" "),t("h3",{attrs:{id:"install-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-upgrade"}},[e._v("#")]),e._v(" Install/Upgrade")]),e._v(" "),t("p",[e._v("Before upgrading, copy out the etc folder from the root directory of the CaSS installation. From an elevated command line:")]),e._v(" "),t("div",{staticClass:"language-batch extra-class"},[t("pre",{pre:!0,attrs:{class:"language-batch"}},[t("code",[t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("choco")]),e._v(" install "),t("span",{pre:!0,attrs:{class:"token parameter attr-name"}},[e._v("-y")]),e._v(" cass")]),e._v("\n")])])]),t("p",[e._v("Then copy the etc folder back in.")]),e._v(" "),t("h2",{attrs:{id:"setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[e._v("#")]),e._v(" Setup")]),e._v(" "),t("ul",[t("li",[e._v("Set up a "),t("strong",[e._v("DNS endpoint")])]),e._v(" "),t("li",[e._v("Set up an "),t("strong",[e._v("HTTPS certificate")])]),e._v(" "),t("li",[e._v("Set up "),t("a",{attrs:{href:"https://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis",target:"_blank",rel:"noopener noreferrer"}},[e._v("IIS Reverse Proxy"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Reverse Proxy Endpoint: "),t("code",[e._v("https:/// -> http://localhost:8080/cass/")])])])]),e._v(" "),t("li",[e._v("In your firewall, deny access to ports "),t("code",[e._v("9200")]),e._v(" and "),t("code",[e._v("8080")]),e._v(" to all machines except localhost.")])]),e._v(" "),t("h2",{attrs:{id:"post-installation-checklist"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#post-installation-checklist"}},[e._v("#")]),e._v(" Post-Installation Checklist")]),e._v(" "),t("ol",[t("li",[e._v("Ensure API is started and reachable through a desired endpoint")]),e._v(" "),t("li",[e._v("(e.g. "),t("code",[e._v("http://cass..org/api/custom/")]),e._v(").")]),e._v(" "),t("li",[e._v("Note that all objects created will use this endpoint in their permanent locator, so make sure!")]),e._v(" "),t("li",[e._v("Ensure Website is reachable through a desired endpoint")]),e._v(" "),t("li",[e._v("(e.g. "),t("code",[e._v("http://cass..org/")]),e._v(").")]),e._v(" "),t("li",[e._v("CASS attempts to auto-detect the endpoint for the server automatically. XSS or obscure endpoints may require additional configuration.")]),e._v(" "),t("li",[e._v("Set PM2 logs to rotate with the "),t("code",[e._v("npm run rotatelogs")]),e._v(" command. On Windows machines, we have found that it works better to change the rotatelogs command in the package.json file to "),t("code",[e._v("pm2 install @jessety/pm2-logrotate")]),e._v(" before running the npm command.")]),e._v(" "),t("li",[e._v("To get the process to restart when your Linux machine restarts, run "),t("code",[e._v("npm run pm2startup")]),e._v(", run the command the process tells you to, and run "),t("code",[e._v("npm run pm2save")]),e._v(". For Windows, an additional library is needed to configure this. We followed the instructions here: https://stackoverflow.com/a/42770772")])]),e._v(" "),t("h2",{attrs:{id:"testing-upgrade-and-installation-faq"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing-upgrade-and-installation-faq"}},[e._v("#")]),e._v(" Testing, upgrade, and installation FAQ")]),e._v(" "),t("ol",[t("li",[e._v("Most errors will occur due to a lack of connectivity with the appropriate endpoint. Use the Browser Development Tools to ensure that requests are going to the correct location.")]),e._v(" "),t("li",[e._v("Check to ensure the environment variable "),t("code",[e._v("CASS_LOOPBACK")]),e._v(" is set to the endpoint of the server.")]),e._v(" "),t("li",[e._v("Apache requires proxy_http to function. If Apache fails to start up, the proxy_http module may not be enabled. In HTTPD, this is called "),t("code",[e._v("mod_proxy_http")]),e._v(".")]),e._v(" "),t("li",[e._v("The installer will not modify a current install of the Apache/HTTPD Web Server if proxy settings are being used (even from a previous install).")]),e._v(" "),t("li",[e._v("When upgrading from 0.1.0 -- If you get the error "),t("code",[e._v("HTTP Status 404 - /cass-0.0.1/")])]),e._v(" "),t("li",[e._v("Alter the apache conf files to use ProxyPass / "),t("code",[e._v("http://localhost:8080/cass/")]),e._v(", not ProxyPass / "),t("code",[e._v("http://localhost:8080/cass-0.0.1/")])]),e._v(" "),t("li",[e._v("After an upgrade, database incompatibilities may occur. You may export and import data before upgrades using the following web services:\n"),t("ul",[t("li",[t("code",[e._v("http:///skyrepo/util/backup?secret=[contents of skyId.secret in etc folder]")])]),e._v(" "),t("li",[t("code",[e._v("http:///skyrepo/util/restore?secret=[contents of skyId.secret in etc folder]")])])])]),e._v(" "),t("li",[e._v("If you are upgrading ElasticSearch from version 5 to 7, you'll need to first upgrade to 6 and start CaSS. Keep an eye on the logs, and after the data has finished reindexing, you can upgrade to 7.")])]),e._v(" "),t("h2",{attrs:{id:"troubleshooting"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting"}},[e._v("#")]),e._v(" Troubleshooting")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Is ElasticSearch running?")]),e._v(" "),t("ul",[t("li",[e._v("If not, start it manually and ensure the service is configured to start automatically on boot.")])])]),e._v(" "),t("li",[t("strong",[e._v("Is PM2 running?")]),e._v(" "),t("ul",[t("li",[e._v("If not, start it manually and ensure the service is configured to start automatically on boot.")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("http://:8080/cass/")]),e._v("?")]),e._v(" "),t("ul",[t("li",[e._v("Make sure there are no conflicts on port 8080.")]),e._v(" "),t("li",[e._v("Verify that PM2 is running.")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("http://:8080/cass/api/")]),e._v(" with a response “Service does not exist”?")]),e._v(" "),t("ul",[t("li",[e._v("If the request hangs, ensure ElasticSearch is running and that it started without error (check the logs).")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("http://:8080/cass/api/data?q=*")]),e._v(" and receive a valid response (empty list or data array depending on the data in the system)?")]),e._v(" "),t("ul",[t("li",[e._v("If the request hangs, ensure ElasticSearch is running and that it started without error (check the logs).")])])]),e._v(" "),t("li",[t("strong",[e._v("Access your local CASS installation via browser "),t("code",[e._v("http://:8080/cass/")]),e._v(", create a new user, and attempt to login.")]),e._v(" "),t("ul",[t("li",[e._v("Did the login complete?")]),e._v(" "),t("li",[e._v("Did the login icon in the left sidebar change to display your initials?")]),e._v(" "),t("li",[e._v("Did you gain new capabilities? (Assertions, Configuration -> Users and Groups)")]),e._v(" "),t("li",[e._v("If not, repeat the operations with browser developer tools enabled. Watch the network stream and ensure the ‘login’, ‘create’, and ‘commit’ requests and responses are occurring without incident.")])])]),e._v(" "),t("li",[t("strong",[e._v("Create a framework.")]),e._v(" "),t("ul",[t("li",[e._v("Did it appear on the screen?\n"),t("ul",[t("li",[e._v("If not, repeat the operation with browser developer tools enabled. Watch the network stream and ensure the framework creation POST occurred without incident.")])])])])]),e._v(" "),t("li",[t("strong",[e._v("Create a competency in the framework.")]),e._v(" "),t("ul",[t("li",[e._v("Did it appear in the framework?\n"),t("ul",[t("li",[e._v("If not, repeat the operation with browser developer tools enabled. Watch the network stream and ensure the competency creation POST occurred without incident.")])])]),e._v(" "),t("li",[e._v("Delete the competency and framework.")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("https:///")]),e._v(" and view the website?")]),e._v(" "),t("ul",[t("li",[e._v("If not, can you access "),t("code",[e._v("http:///")]),e._v(" (http vs. https) and view the website?\n"),t("ul",[t("li",[e._v("If so, verify the reverse proxy settings are applied to the HTTPS configuration.")]),e._v(" "),t("li",[e._v("If not, ensure the Apache2 server (or IIS) is working correctly (check the logs, debug the reverse proxy, etc.).")])])])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("https:///api/")]),e._v("and get “Service does not exist”?")]),e._v(" "),t("ul",[t("li",[e._v("If not, ensure the Apache2 server (or IIS) is working correctly (check the logs, debug the reverse proxy, etc.).")])])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{671:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cass-installation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-installation"}},[e._v("#")]),e._v(" CaSS Installation")]),e._v(" "),t("p",[e._v("This is the installation guide for a CaSS instance. If you're just looking to work with an existing CaSS instance, you may be looking for the CaSS Library. See the "),t("a",{attrs:{href:"/dev/links-and-references"}},[e._v("Links")]),e._v(" section for more information.")]),e._v(" "),t("h2",{attrs:{id:"system-requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirements"}},[e._v("#")]),e._v(" System Requirements")]),e._v(" "),t("ul",[t("li",[e._v("4 GB of ram (can work with 2 GB with additional configuration)\n"),t("ul",[t("li",[e._v("ElasticSearch 7: 2 GB (can be reduced to 1 GB)")])])]),e._v(" "),t("li",[e._v("At least 8 GB of hard drive space.")])]),e._v(" "),t("h2",{attrs:{id:"cass-version-requirements"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-version-requirements"}},[e._v("#")]),e._v(" CaSS Version Requirements")]),e._v(" "),t("p",[e._v("Minimum CaSS version selection for inclusion of CaSS Authoring Tools should be "),t("strong",[e._v("1.3")])]),e._v(" "),t("h2",{attrs:{id:"cat-cass-installation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cat-cass-installation"}},[e._v("#")]),e._v(" CAT/CaSS Installation")]),e._v(" "),t("h3",{attrs:{id:"linux-debian-ubuntu-amazon-and-other-fedora-derivatives"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux-debian-ubuntu-amazon-and-other-fedora-derivatives"}},[e._v("#")]),e._v(" Linux (Debian, Ubuntu, Amazon and other Fedora derivatives)")]),e._v(" "),t("p",[e._v("CaSS can be installed on linux through our Bash install script.")]),e._v(" "),t("p",[e._v("Install and Upgrade")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("wget")]),e._v(" https://raw.githubusercontent.com/cassproject/CASS/master/scripts/cassInstall.sh\n "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("chmod")]),e._v(" +x cassInstall.sh\n "),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("sudo")]),e._v(" ./cassInstall.sh\n")])])]),t("h2",{attrs:{id:"docker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#docker"}},[e._v("#")]),e._v(" Docker")]),e._v(" "),t("p",[e._v("Images for CASS are kept in Docker Hub under "),t("a",{attrs:{href:"https://hub.docker.com/r/cassproject/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("cassproject/cass"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("The following command will run the CaSS Standalone server with an interactive prompt and expose it on port 80 on the local machine.")]),e._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("docker")]),e._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-it")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[e._v("-p80:80")]),e._v(" cassproject/cass\n")])])]),t("p",[e._v("Additionally, if you wish to use docker-compose or some other means of deploying CaSS in a constellation of servers, see "),t("a",{attrs:{href:"https://github.com/cassproject/CASS/blob/master/docker-compose.yml",target:"_blank",rel:"noopener noreferrer"}},[e._v("this docker-compose file"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#windows"}},[e._v("#")]),e._v(" Windows")]),e._v(" "),t("p",[e._v("Windows installation uses "),t("a",{attrs:{href:"https://chocolatey.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chocolatey"),t("OutboundLink")],1),e._v(" as a package manager. Chocolatey will be used to install all required CASS dependencies (maven, git, and elasticsearch).")]),e._v(" "),t("p",[e._v("If you would like to install these packages by hand or using another tool, please feel free.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://chocolatey.org/packages/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("CASS Package on Chocolatey"),t("OutboundLink")],1)]),e._v(" "),t("h3",{attrs:{id:"once"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#once"}},[e._v("#")]),e._v(" Once")]),e._v(" "),t("p",[e._v("From an elevated powershell:")]),e._v(" "),t("div",{staticClass:"language-batch extra-class"},[t("pre",{pre:!0,attrs:{class:"language-batch"}},[t("code",[t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("Set")]),e._v("-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("3072")]),e._v("; iex ((New-Object System.Net.WebClient")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(".DownloadString"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("'")]),e._v("https://community.chocolatey.org/install.ps1"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("refreshenv")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("choco")]),e._v(" install "),t("span",{pre:!0,attrs:{class:"token parameter attr-name"}},[e._v("-y")]),e._v(" cass")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("refreshenv")])]),e._v("\n")])])]),t("p",[e._v("Go to services, start "),t("code",[e._v("elasticsearch-service-x64")]),e._v(" and set it to start automatically.")]),e._v(" "),t("h3",{attrs:{id:"install-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-upgrade"}},[e._v("#")]),e._v(" Install/Upgrade")]),e._v(" "),t("p",[e._v("Before upgrading, copy out the etc folder from the root directory of the CaSS installation. From an elevated command line:")]),e._v(" "),t("div",{staticClass:"language-batch extra-class"},[t("pre",{pre:!0,attrs:{class:"language-batch"}},[t("code",[t("span",{pre:!0,attrs:{class:"token command"}},[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("choco")]),e._v(" install "),t("span",{pre:!0,attrs:{class:"token parameter attr-name"}},[e._v("-y")]),e._v(" cass")]),e._v("\n")])])]),t("p",[e._v("Then copy the etc folder back in.")]),e._v(" "),t("h2",{attrs:{id:"setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[e._v("#")]),e._v(" Setup")]),e._v(" "),t("ul",[t("li",[e._v("Set up a "),t("strong",[e._v("DNS endpoint")])]),e._v(" "),t("li",[e._v("Set up an "),t("strong",[e._v("HTTPS certificate")])]),e._v(" "),t("li",[e._v("Set up "),t("a",{attrs:{href:"https://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis",target:"_blank",rel:"noopener noreferrer"}},[e._v("IIS Reverse Proxy"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Reverse Proxy Endpoint: "),t("code",[e._v("https:/// -> http://localhost:8080/cass/")])])])]),e._v(" "),t("li",[e._v("In your firewall, deny access to ports "),t("code",[e._v("9200")]),e._v(" and "),t("code",[e._v("8080")]),e._v(" to all machines except localhost.")])]),e._v(" "),t("h2",{attrs:{id:"post-installation-checklist"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#post-installation-checklist"}},[e._v("#")]),e._v(" Post-Installation Checklist")]),e._v(" "),t("ol",[t("li",[e._v("Ensure API is started and reachable through a desired endpoint")]),e._v(" "),t("li",[e._v("(e.g. "),t("code",[e._v("http://cass..org/api/custom/")]),e._v(").")]),e._v(" "),t("li",[e._v("Note that all objects created will use this endpoint in their permanent locator, so make sure!")]),e._v(" "),t("li",[e._v("Ensure Website is reachable through a desired endpoint")]),e._v(" "),t("li",[e._v("(e.g. "),t("code",[e._v("http://cass..org/")]),e._v(").")]),e._v(" "),t("li",[e._v("CASS attempts to auto-detect the endpoint for the server automatically. XSS or obscure endpoints may require additional configuration.")]),e._v(" "),t("li",[e._v("Set PM2 logs to rotate with the "),t("code",[e._v("npm run rotatelogs")]),e._v(" command. On Windows machines, we have found that it works better to change the rotatelogs command in the package.json file to "),t("code",[e._v("pm2 install @jessety/pm2-logrotate")]),e._v(" before running the npm command.")]),e._v(" "),t("li",[e._v("To get the process to restart when your Linux machine restarts, run "),t("code",[e._v("npm run pm2startup")]),e._v(", run the command the process tells you to, and run "),t("code",[e._v("npm run pm2save")]),e._v(". For Windows, an additional library is needed to configure this. We followed the instructions here: https://stackoverflow.com/a/42770772")])]),e._v(" "),t("h2",{attrs:{id:"testing-upgrade-and-installation-faq"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing-upgrade-and-installation-faq"}},[e._v("#")]),e._v(" Testing, upgrade, and installation FAQ")]),e._v(" "),t("ol",[t("li",[e._v("Most errors will occur due to a lack of connectivity with the appropriate endpoint. Use the Browser Development Tools to ensure that requests are going to the correct location.")]),e._v(" "),t("li",[e._v("Check to ensure the environment variable "),t("code",[e._v("CASS_LOOPBACK")]),e._v(" is set to the endpoint of the server.")]),e._v(" "),t("li",[e._v("Apache requires proxy_http to function. If Apache fails to start up, the proxy_http module may not be enabled. In HTTPD, this is called "),t("code",[e._v("mod_proxy_http")]),e._v(".")]),e._v(" "),t("li",[e._v("The installer will not modify a current install of the Apache/HTTPD Web Server if proxy settings are being used (even from a previous install).")]),e._v(" "),t("li",[e._v("When upgrading from 0.1.0 -- If you get the error "),t("code",[e._v("HTTP Status 404 - /cass-0.0.1/")])]),e._v(" "),t("li",[e._v("Alter the apache conf files to use ProxyPass / "),t("code",[e._v("http://localhost:8080/cass/")]),e._v(", not ProxyPass / "),t("code",[e._v("http://localhost:8080/cass-0.0.1/")])]),e._v(" "),t("li",[e._v("After an upgrade, database incompatibilities may occur. You may export and import data before upgrades using the following web services:\n"),t("ul",[t("li",[t("code",[e._v("http:///skyrepo/util/backup?secret=[contents of skyId.secret in etc folder]")])]),e._v(" "),t("li",[t("code",[e._v("http:///skyrepo/util/restore?secret=[contents of skyId.secret in etc folder]")])])])]),e._v(" "),t("li",[e._v("If you are upgrading ElasticSearch from version 5 to 7, you'll need to first upgrade to 6 and start CaSS. Keep an eye on the logs, and after the data has finished reindexing, you can upgrade to 7.")])]),e._v(" "),t("h2",{attrs:{id:"troubleshooting"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting"}},[e._v("#")]),e._v(" Troubleshooting")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Is ElasticSearch running?")]),e._v(" "),t("ul",[t("li",[e._v("If not, start it manually and ensure the service is configured to start automatically on boot.")])])]),e._v(" "),t("li",[t("strong",[e._v("Is PM2 running?")]),e._v(" "),t("ul",[t("li",[e._v("If not, start it manually and ensure the service is configured to start automatically on boot.")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("http://:8080/cass/")]),e._v("?")]),e._v(" "),t("ul",[t("li",[e._v("Make sure there are no conflicts on port 8080.")]),e._v(" "),t("li",[e._v("Verify that PM2 is running.")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("http://:8080/cass/api/")]),e._v(" with a response “Service does not exist”?")]),e._v(" "),t("ul",[t("li",[e._v("If the request hangs, ensure ElasticSearch is running and that it started without error (check the logs).")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("http://:8080/cass/api/data?q=*")]),e._v(" and receive a valid response (empty list or data array depending on the data in the system)?")]),e._v(" "),t("ul",[t("li",[e._v("If the request hangs, ensure ElasticSearch is running and that it started without error (check the logs).")])])]),e._v(" "),t("li",[t("strong",[e._v("Access your local CASS installation via browser "),t("code",[e._v("http://:8080/cass/")]),e._v(", create a new user, and attempt to login.")]),e._v(" "),t("ul",[t("li",[e._v("Did the login complete?")]),e._v(" "),t("li",[e._v("Did the login icon in the left sidebar change to display your initials?")]),e._v(" "),t("li",[e._v("Did you gain new capabilities? (Assertions, Configuration -> Users and Groups)")]),e._v(" "),t("li",[e._v("If not, repeat the operations with browser developer tools enabled. Watch the network stream and ensure the ‘login’, ‘create’, and ‘commit’ requests and responses are occurring without incident.")])])]),e._v(" "),t("li",[t("strong",[e._v("Create a framework.")]),e._v(" "),t("ul",[t("li",[e._v("Did it appear on the screen?\n"),t("ul",[t("li",[e._v("If not, repeat the operation with browser developer tools enabled. Watch the network stream and ensure the framework creation POST occurred without incident.")])])])])]),e._v(" "),t("li",[t("strong",[e._v("Create a competency in the framework.")]),e._v(" "),t("ul",[t("li",[e._v("Did it appear in the framework?\n"),t("ul",[t("li",[e._v("If not, repeat the operation with browser developer tools enabled. Watch the network stream and ensure the competency creation POST occurred without incident.")])])]),e._v(" "),t("li",[e._v("Delete the competency and framework.")])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("https:///")]),e._v(" and view the website?")]),e._v(" "),t("ul",[t("li",[e._v("If not, can you access "),t("code",[e._v("http:///")]),e._v(" (http vs. https) and view the website?\n"),t("ul",[t("li",[e._v("If so, verify the reverse proxy settings are applied to the HTTPS configuration.")]),e._v(" "),t("li",[e._v("If not, ensure the Apache2 server (or IIS) is working correctly (check the logs, debug the reverse proxy, etc.).")])])])])]),e._v(" "),t("li",[t("strong",[e._v("Can you access "),t("code",[e._v("https:///api/")]),e._v("and get “Service does not exist”?")]),e._v(" "),t("ul",[t("li",[e._v("If not, ensure the Apache2 server (or IIS) is working correctly (check the logs, debug the reverse proxy, etc.).")])])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/49.956f545b.js.gz b/docs/assets/js/49.956f545b.js.gz new file mode 100644 index 000000000..c63118a02 Binary files /dev/null and b/docs/assets/js/49.956f545b.js.gz differ diff --git a/docs/assets/js/49.f42eb395.js.gz b/docs/assets/js/49.f42eb395.js.gz deleted file mode 100644 index 96aa952ee..000000000 Binary files a/docs/assets/js/49.f42eb395.js.gz and /dev/null differ diff --git a/docs/assets/js/51.b250ec1f.js b/docs/assets/js/51.fef1f39a.js similarity index 99% rename from docs/assets/js/51.b250ec1f.js rename to docs/assets/js/51.fef1f39a.js index 21aeffb87..a0ec4a6f8 100644 --- a/docs/assets/js/51.b250ec1f.js +++ b/docs/assets/js/51.fef1f39a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{671:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"c"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#c"}},[t._v("#")]),t._v(" C#")]),t._v(" "),s("div",{staticClass:"custom-block danger"},[s("p",{staticClass:"custom-block-title"},[t._v("DANGER")]),t._v(" "),s("p",[t._v("Currently, there is no formal CASS library for C#. If you would like to contribute or begin developing one, see the "),s("RouterLink",{attrs:{to:"/dev/contributing/"}},[t._v("contributor section")]),t._v(" of this guide.")],1)]),t._v(" "),s("h2",{attrs:{id:"javascript-interpreter"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#javascript-interpreter"}},[t._v("#")]),t._v(" JavaScript Interpreter")]),t._v(" "),s("p",[t._v("Several JavaScript interpreters have been written for C#, however, it is unclear whether appropriate bindings exist. In theory, the CASS Libraries are compatible with any JavaScript environment, given access to functions like JQuery’s "),s("code",[t._v("$.ajax")]),t._v(" call.")]),t._v(" "),s("p",[t._v("This type of integration is desirable for continued expansion of supported languages for CASS.")]),t._v(" "),s("p",[s("strong",[t._v("If this is something you would like to pursue, please get in touch with the lead developer: fritz.ray@eduworks.com")])]),t._v(" "),s("h2",{attrs:{id:"consuming-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#consuming-data"}},[t._v("#")]),t._v(" Consuming Data")]),t._v(" "),s("p",[t._v("If you are only intending to consume CASS data, the path is much simpler.")]),t._v(" "),s("ol",[s("li",[t._v("Create a helper method and fetch resources")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token return-type class-name"}},[t._v("Task"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("JsonObject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("httpGetJsonObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("HttpClient")]),t._v(" hc "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("System"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("HttpClient")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" s "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" hc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("JsonObject")]),t._v(" root "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Windows"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Json"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("JsonValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Parse")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" root"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("ol",{attrs:{start:"2"}},[s("li",[t._v("Retrieve frameworks and competencies")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("JsonObject")]),t._v(" obj "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("httpGetJsonObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/ce4c0e41-f24c-407d-95af-047bfee429bf"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" foo "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" obj"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNamedString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("JsonObject")]),t._v(" obj2 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("httpGetJsonObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNamedArray")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"competency"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nfoo "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\n"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" obj2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNamedString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("ol",[s("li",[t._v("If you need to generate an RSA public/private keypair in C#, use NuGet to download a package called BouncyCastle")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Crypto")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Crypto"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Generators")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OpenSsl")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Security")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RsaKeyPairGenerator")]),t._v(" r "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("RsaKeyPairGenerator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Init")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("KeyGenerationParameters")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("SecureRandom")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2048")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AsymmetricCipherKeyPair")]),t._v(" keys "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GenerateKeyPair")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TextWriter")]),t._v(" textWriter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("StringWriter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("PemWriter")]),t._v(" pemWriter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("PemWriter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("textWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\npemWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("keys"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Private"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\npemWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Writer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Flush")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")])]),t._v(" privateKey "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" textWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ToString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{672:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"c"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#c"}},[t._v("#")]),t._v(" C#")]),t._v(" "),s("div",{staticClass:"custom-block danger"},[s("p",{staticClass:"custom-block-title"},[t._v("DANGER")]),t._v(" "),s("p",[t._v("Currently, there is no formal CASS library for C#. If you would like to contribute or begin developing one, see the "),s("RouterLink",{attrs:{to:"/dev/contributing/"}},[t._v("contributor section")]),t._v(" of this guide.")],1)]),t._v(" "),s("h2",{attrs:{id:"javascript-interpreter"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#javascript-interpreter"}},[t._v("#")]),t._v(" JavaScript Interpreter")]),t._v(" "),s("p",[t._v("Several JavaScript interpreters have been written for C#, however, it is unclear whether appropriate bindings exist. In theory, the CASS Libraries are compatible with any JavaScript environment, given access to functions like JQuery’s "),s("code",[t._v("$.ajax")]),t._v(" call.")]),t._v(" "),s("p",[t._v("This type of integration is desirable for continued expansion of supported languages for CASS.")]),t._v(" "),s("p",[s("strong",[t._v("If this is something you would like to pursue, please get in touch with the lead developer: fritz.ray@eduworks.com")])]),t._v(" "),s("h2",{attrs:{id:"consuming-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#consuming-data"}},[t._v("#")]),t._v(" Consuming Data")]),t._v(" "),s("p",[t._v("If you are only intending to consume CASS data, the path is much simpler.")]),t._v(" "),s("ol",[s("li",[t._v("Create a helper method and fetch resources")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token return-type class-name"}},[t._v("Task"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("JsonObject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("httpGetJsonObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("System"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("HttpClient")]),t._v(" hc "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("System"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Net"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("HttpClient")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" s "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" hc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetStringAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("JsonObject")]),t._v(" root "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Windows"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Json"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("JsonValue"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Parse")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" root"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("ol",{attrs:{start:"2"}},[s("li",[t._v("Retrieve frameworks and competencies")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("JsonObject")]),t._v(" obj "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("httpGetJsonObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/ce4c0e41-f24c-407d-95af-047bfee429bf"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" foo "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" obj"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNamedString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("JsonObject")]),t._v(" obj2 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("httpGetJsonObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("obj"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNamedArray")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"competency"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nfoo "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\n"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" obj2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNamedString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("ol",[s("li",[t._v("If you need to generate an RSA public/private keypair in C#, use NuGet to download a package called BouncyCastle")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Crypto")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Crypto"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Generators")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OpenSsl")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("Org"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("BouncyCastle"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Security")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("RsaKeyPairGenerator")]),t._v(" r "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("RsaKeyPairGenerator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Init")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("KeyGenerationParameters")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("SecureRandom")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2048")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AsymmetricCipherKeyPair")]),t._v(" keys "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" r"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GenerateKeyPair")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TextWriter")]),t._v(" textWriter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("StringWriter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("PemWriter")]),t._v(" pemWriter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constructor-invocation class-name"}},[t._v("PemWriter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("textWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\npemWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("keys"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Private"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\npemWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Writer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Flush")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")])]),t._v(" privateKey "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" textWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ToString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/51.b250ec1f.js.gz b/docs/assets/js/51.fef1f39a.js.gz similarity index 52% rename from docs/assets/js/51.b250ec1f.js.gz rename to docs/assets/js/51.fef1f39a.js.gz index b0be373ce..0a5eeb0bf 100644 Binary files a/docs/assets/js/51.b250ec1f.js.gz and b/docs/assets/js/51.fef1f39a.js.gz differ diff --git a/docs/assets/js/57.983cd3da.js b/docs/assets/js/57.13fe983a.js similarity index 99% rename from docs/assets/js/57.983cd3da.js rename to docs/assets/js/57.13fe983a.js index 79cb11ee3..d6922583d 100644 --- a/docs/assets/js/57.983cd3da.js +++ b/docs/assets/js/57.13fe983a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{680:function(e,t,a){"use strict";a.r(t);var s=a(69),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"design-principles"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#design-principles"}},[e._v("#")]),e._v(" Design Principles")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("READ FIRST")]),e._v(" "),t("p",[e._v("This page outlines the developer-related design principles in CaSS software. These are an extension of the design principles listed in the high-level guide:")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/guide/overview/#design-principles"}},[e._v("General Design Principles")])],1)]),e._v(" "),t("p",[e._v("These design concepts represent positions currently taken by the CaSS Project.")]),e._v(" "),t("h2",{attrs:{id:"open-linked-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-linked-data"}},[e._v("#")]),e._v(" Open Linked Data")]),e._v(" "),t("p",[e._v("The CaSS data architecture is built upon the concepts of "),t("strong",[e._v("Open Data")]),e._v(" and "),t("strong",[e._v("Linked Data")]),e._v(".")]),e._v(" "),t("blockquote",[t("p",[t("strong",[e._v("Open Data")])]),e._v(" "),t("p",[e._v("By default, data should be available to anyone who makes a request.")])]),e._v(" "),t("blockquote",[t("p",[t("strong",[e._v("Linked Data")])]),e._v(" "),t("p",[e._v("References to data should be done using URLs rather than internal identifiers.")])]),e._v(" "),t("p",[e._v("Implementation of these concepts has another effect. If an application’s data is open, then its schema should also be open. If schemas are open, then users of the same data should agree on the schema. This need for schema collaboration has resulted in efforts such as schema.org.")]),e._v(" "),t("p",[e._v("Open Data is not incompatible with personal, private, or protected information. Instead of securing all data by default, resulting in huge silos of data that would otherwise be of limited use, it requires the developer or user to understand the implications of protecting their data and to do so deliberately.")]),e._v(" "),t("p",[e._v("Open Linked Data creates the potential for the entire internet to act as a database for all applications, creating an information superhighway not just for documents on the web, as HTTP and HTML have done, but for data on the web, using HTTP, JSON and other formats.")]),e._v(" "),t("p",[e._v("CaSS embraces this concept wholly, with the goal of taking the world’s competency and competence data and increasing its value by making it accessible from anywhere, at any time.")]),e._v(" "),t("h2",{attrs:{id:"no-knowledge-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#no-knowledge-repository"}},[e._v("#")]),e._v(" No Knowledge Repository")]),e._v(" "),t("p",[t("strong",[e._v("No Knowledge")]),e._v(" (previously '"),t("em",[e._v("Zero-Knowledge")]),e._v("') is a concept that arose in response to hacks and data breaches that continue to occur on a daily basis. No Knowledge software was invented by "),t("a",{attrs:{href:"https://spideroak.com/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("SpiderOak"),t("OutboundLink")],1),e._v(". Adopted by developers of backup software, No Knowledge declares:")]),e._v(" "),t("ol",[t("li",[e._v("You shouldn’t have to blindly trust your vendors")]),e._v(" "),t("li",[e._v("When you have something worth protecting, privacy is everything")]),e._v(" "),t("li",[e._v("Your data is yours, and should always be in your control")]),e._v(" "),t("li",[e._v("Encryption should not sacrifice usability")])]),e._v(" "),t("p",[e._v("In CaSS, partially-encrypted or wholly-encrypted data can be delivered to multiple sources with a permissioning system that persists across transmissions and ensures that the only parties with access to the data are those identified by the data. This places the burden of security back on the creator of the data and the user of the data, where we believe it belongs.")]),e._v(" "),t("h2",{attrs:{id:"public-key-infrastructure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#public-key-infrastructure"}},[e._v("#")]),e._v(" Public Key Infrastructure")]),e._v(" "),t("p",[e._v("Individuals have a vested interest in keeping their educational records private, so a traditional identification scheme was not an option in CaSS. Instead, we chose a public key infrastructure to allow individuals and parties to carry multiple keys that unlock different aspects of their lives. Much like the keys on a keyring, these keys can be used to access data stored across many servers, and the keys themselves semi-anonymize the user. Further, PKI is currently in use by nearly all servers with SSL certificates and is a widely supported and understood set of practices.")]),e._v(" "),t("h2",{attrs:{id:"uri-url-urn-nuances"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uri-url-urn-nuances"}},[e._v("#")]),e._v(" URI/URL/URN Nuances")]),e._v(" "),t("p",[e._v("In CaSS, objects are identified by long strings of characters called URLs. URLs (and URNs) are types of URIs.")]),e._v(" "),t("p",[e._v("Examples of these:")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("URL")])]),e._v(" "),t("p",[t("code",[e._v("https://dev.cassproject.org/api/data/76ffff33-bd15-4bf3-a007-4ce247d2216d")])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("URI")])]),e._v(" "),t("p",[t("code",[e._v("competencyFramework://76ffff33-bd15-4bf3-a007-4ce247d2216d")])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("URN")])]),e._v(" "),t("p",[t("code",[e._v("competencyFramework:O*NET")])])])]),e._v(" "),t("p",[e._v("URIs, URLs, and URNs can all be identifiers for the aforementioned competency frameworks. However, only a URL provides nearly any system the ability to retrieve the data referred to by the URL. This distinction is important for machine-operable data.")]),e._v(" "),t("p",[e._v("CaSS is capable of handling URLs that identify external resources, and the CaSS Library automatically will attempt to retrieve information from appropriate repositories.")]),e._v(" "),t("h2",{attrs:{id:"standards-based-api-s"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#standards-based-api-s"}},[e._v("#")]),e._v(" Standards-Based API's")]),e._v(" "),t("p",[e._v("CaSS attempts to adhere as closely as possible to REST and standard practices of search (e.g. "),t("code",[e._v("?q=")]),e._v("). Additionally, we seek to implement existing standards that closely adhere to the purpose of CaSS. By building and maintaining a simple custom API, and implementing several standard APIs, we hope to create a system that transparently introduces interoperability into an ecosystem prone to fragmentation.")]),e._v(" "),t("h2",{attrs:{id:"descriptive-not-prescriptive"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#descriptive-not-prescriptive"}},[e._v("#")]),e._v(" Descriptive, not Prescriptive")]),e._v(" "),t("p",[e._v("While it is generally impossible to avoid prescription in a software project, CaSS is intended to enable the widest range of interoperability for competency-based systems through the ability to describe existing competency frameworks, procedures and processes, and policies in a common fashion. Therefore, while demonstrations of CaSS may exhibit functionality (such as username and password login), that functionality is very commonly not necessary to operate CaSS and may be replaced by more or less complex systems.")]),e._v(" "),t("p",[e._v("This stance greatly improves the range of interoperability at the cost of conformance. The CaSS project endeavors to record and promote best practices, but does not enforce them.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{678:function(e,t,a){"use strict";a.r(t);var s=a(69),o=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"design-principles"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#design-principles"}},[e._v("#")]),e._v(" Design Principles")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("READ FIRST")]),e._v(" "),t("p",[e._v("This page outlines the developer-related design principles in CaSS software. These are an extension of the design principles listed in the high-level guide:")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/guide/overview/#design-principles"}},[e._v("General Design Principles")])],1)]),e._v(" "),t("p",[e._v("These design concepts represent positions currently taken by the CaSS Project.")]),e._v(" "),t("h2",{attrs:{id:"open-linked-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open-linked-data"}},[e._v("#")]),e._v(" Open Linked Data")]),e._v(" "),t("p",[e._v("The CaSS data architecture is built upon the concepts of "),t("strong",[e._v("Open Data")]),e._v(" and "),t("strong",[e._v("Linked Data")]),e._v(".")]),e._v(" "),t("blockquote",[t("p",[t("strong",[e._v("Open Data")])]),e._v(" "),t("p",[e._v("By default, data should be available to anyone who makes a request.")])]),e._v(" "),t("blockquote",[t("p",[t("strong",[e._v("Linked Data")])]),e._v(" "),t("p",[e._v("References to data should be done using URLs rather than internal identifiers.")])]),e._v(" "),t("p",[e._v("Implementation of these concepts has another effect. If an application’s data is open, then its schema should also be open. If schemas are open, then users of the same data should agree on the schema. This need for schema collaboration has resulted in efforts such as schema.org.")]),e._v(" "),t("p",[e._v("Open Data is not incompatible with personal, private, or protected information. Instead of securing all data by default, resulting in huge silos of data that would otherwise be of limited use, it requires the developer or user to understand the implications of protecting their data and to do so deliberately.")]),e._v(" "),t("p",[e._v("Open Linked Data creates the potential for the entire internet to act as a database for all applications, creating an information superhighway not just for documents on the web, as HTTP and HTML have done, but for data on the web, using HTTP, JSON and other formats.")]),e._v(" "),t("p",[e._v("CaSS embraces this concept wholly, with the goal of taking the world’s competency and competence data and increasing its value by making it accessible from anywhere, at any time.")]),e._v(" "),t("h2",{attrs:{id:"no-knowledge-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#no-knowledge-repository"}},[e._v("#")]),e._v(" No Knowledge Repository")]),e._v(" "),t("p",[t("strong",[e._v("No Knowledge")]),e._v(" (previously '"),t("em",[e._v("Zero-Knowledge")]),e._v("') is a concept that arose in response to hacks and data breaches that continue to occur on a daily basis. No Knowledge software was invented by "),t("a",{attrs:{href:"https://spideroak.com/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("SpiderOak"),t("OutboundLink")],1),e._v(". Adopted by developers of backup software, No Knowledge declares:")]),e._v(" "),t("ol",[t("li",[e._v("You shouldn’t have to blindly trust your vendors")]),e._v(" "),t("li",[e._v("When you have something worth protecting, privacy is everything")]),e._v(" "),t("li",[e._v("Your data is yours, and should always be in your control")]),e._v(" "),t("li",[e._v("Encryption should not sacrifice usability")])]),e._v(" "),t("p",[e._v("In CaSS, partially-encrypted or wholly-encrypted data can be delivered to multiple sources with a permissioning system that persists across transmissions and ensures that the only parties with access to the data are those identified by the data. This places the burden of security back on the creator of the data and the user of the data, where we believe it belongs.")]),e._v(" "),t("h2",{attrs:{id:"public-key-infrastructure"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#public-key-infrastructure"}},[e._v("#")]),e._v(" Public Key Infrastructure")]),e._v(" "),t("p",[e._v("Individuals have a vested interest in keeping their educational records private, so a traditional identification scheme was not an option in CaSS. Instead, we chose a public key infrastructure to allow individuals and parties to carry multiple keys that unlock different aspects of their lives. Much like the keys on a keyring, these keys can be used to access data stored across many servers, and the keys themselves semi-anonymize the user. Further, PKI is currently in use by nearly all servers with SSL certificates and is a widely supported and understood set of practices.")]),e._v(" "),t("h2",{attrs:{id:"uri-url-urn-nuances"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#uri-url-urn-nuances"}},[e._v("#")]),e._v(" URI/URL/URN Nuances")]),e._v(" "),t("p",[e._v("In CaSS, objects are identified by long strings of characters called URLs. URLs (and URNs) are types of URIs.")]),e._v(" "),t("p",[e._v("Examples of these:")]),e._v(" "),t("ul",[t("li",[t("p",[t("strong",[e._v("URL")])]),e._v(" "),t("p",[t("code",[e._v("https://dev.cassproject.org/api/data/76ffff33-bd15-4bf3-a007-4ce247d2216d")])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("URI")])]),e._v(" "),t("p",[t("code",[e._v("competencyFramework://76ffff33-bd15-4bf3-a007-4ce247d2216d")])])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("URN")])]),e._v(" "),t("p",[t("code",[e._v("competencyFramework:O*NET")])])])]),e._v(" "),t("p",[e._v("URIs, URLs, and URNs can all be identifiers for the aforementioned competency frameworks. However, only a URL provides nearly any system the ability to retrieve the data referred to by the URL. This distinction is important for machine-operable data.")]),e._v(" "),t("p",[e._v("CaSS is capable of handling URLs that identify external resources, and the CaSS Library automatically will attempt to retrieve information from appropriate repositories.")]),e._v(" "),t("h2",{attrs:{id:"standards-based-api-s"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#standards-based-api-s"}},[e._v("#")]),e._v(" Standards-Based API's")]),e._v(" "),t("p",[e._v("CaSS attempts to adhere as closely as possible to REST and standard practices of search (e.g. "),t("code",[e._v("?q=")]),e._v("). Additionally, we seek to implement existing standards that closely adhere to the purpose of CaSS. By building and maintaining a simple custom API, and implementing several standard APIs, we hope to create a system that transparently introduces interoperability into an ecosystem prone to fragmentation.")]),e._v(" "),t("h2",{attrs:{id:"descriptive-not-prescriptive"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#descriptive-not-prescriptive"}},[e._v("#")]),e._v(" Descriptive, not Prescriptive")]),e._v(" "),t("p",[e._v("While it is generally impossible to avoid prescription in a software project, CaSS is intended to enable the widest range of interoperability for competency-based systems through the ability to describe existing competency frameworks, procedures and processes, and policies in a common fashion. Therefore, while demonstrations of CaSS may exhibit functionality (such as username and password login), that functionality is very commonly not necessary to operate CaSS and may be replaced by more or less complex systems.")]),e._v(" "),t("p",[e._v("This stance greatly improves the range of interoperability at the cost of conformance. The CaSS project endeavors to record and promote best practices, but does not enforce them.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/57.13fe983a.js.gz b/docs/assets/js/57.13fe983a.js.gz new file mode 100644 index 000000000..6f5c60132 Binary files /dev/null and b/docs/assets/js/57.13fe983a.js.gz differ diff --git a/docs/assets/js/57.983cd3da.js.gz b/docs/assets/js/57.983cd3da.js.gz deleted file mode 100644 index 7eb16d030..000000000 Binary files a/docs/assets/js/57.983cd3da.js.gz and /dev/null differ diff --git a/docs/assets/js/58.87d9b189.js b/docs/assets/js/58.e2808c10.js similarity index 91% rename from docs/assets/js/58.87d9b189.js rename to docs/assets/js/58.e2808c10.js index 89aeb3cfb..ce56d31ea 100644 --- a/docs/assets/js/58.87d9b189.js +++ b/docs/assets/js/58.e2808c10.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{678:function(t,e,o){"use strict";o.r(e);var s=o(69),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"about"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about"}},[t._v("#")]),t._v(" About")]),t._v(" "),e("p",[t._v("These pages document ways of extending CaSS with other tools, e.g. working with Moodle. CaSS offers several pre-built adapters for some of these situations as well.")]),t._v(" "),e("p",[t._v("Be sure to check out the "),e("RouterLink",{attrs:{to:"/guide/interoperability/"}},[t._v("Interoperability Page")]),t._v(" in the High-Level Guide as well.")],1)])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{679:function(t,e,o){"use strict";o.r(e);var s=o(69),a=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"about"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about"}},[t._v("#")]),t._v(" About")]),t._v(" "),e("p",[t._v("These pages document ways of extending CaSS with other tools, e.g. working with Moodle. CaSS offers several pre-built adapters for some of these situations as well.")]),t._v(" "),e("p",[t._v("Be sure to check out the "),e("RouterLink",{attrs:{to:"/guide/interoperability/"}},[t._v("Interoperability Page")]),t._v(" in the High-Level Guide as well.")],1)])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/58.87d9b189.js.gz b/docs/assets/js/58.e2808c10.js.gz similarity index 52% rename from docs/assets/js/58.87d9b189.js.gz rename to docs/assets/js/58.e2808c10.js.gz index a07ab4648..67d88dff1 100644 Binary files a/docs/assets/js/58.87d9b189.js.gz and b/docs/assets/js/58.e2808c10.js.gz differ diff --git a/docs/assets/js/59.e8942499.js b/docs/assets/js/59.ac727e60.js similarity index 98% rename from docs/assets/js/59.e8942499.js rename to docs/assets/js/59.ac727e60.js index 8e4f02b7e..145f5fd7f 100644 --- a/docs/assets/js/59.e8942499.js +++ b/docs/assets/js/59.ac727e60.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{679:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adapters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adapters"}},[e._v("#")]),e._v(" Adapters")]),e._v(" "),t("p",[t("strong",[e._v("Adapters")]),e._v(" may also be referred to as "),t("strong",[e._v("Application APIs")]),e._v(".")]),e._v(" "),t("p",[e._v("If the notion of client-side security makes you queasy, or you simply want to own all the data, but still want to operate with CASS, there are options available.")]),e._v(" "),t("p",[e._v("It is possible, in CASS, to extend the capabilities of the CASS Repository with additional web service endpoints and functionality. These are known in the CASS Ecosystem as adapters, and provide server-side interoperability for other services or endpoints.")]),e._v(" "),t("p",[e._v("Some examples of existing Adapters:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ASN Adapter")]),e._v(" for converting automatically between Achievement Standards Network Competency Schema and CASS Schema.")]),e._v(" "),t("li",[t("strong",[e._v("JSON-LD Adapter")]),e._v(" for ingesting Named Graphs of objects and exposing them in a CASS Repository.")]),e._v(" "),t("li",[t("strong",[e._v("Moodle Adapter")]),e._v(" for synchronizing competencies with the Moodle LMS.")]),e._v(" "),t("li",[t("strong",[e._v("xAPI Adapter")]),e._v(" for automatically converting Completed or Passed statements into assertions of competence.")])]),e._v(" "),t("p",[e._v("Read the attached sub-pages for more depth on each existing adapters.")]),e._v(" "),t("p",[e._v("Adapters run on the CASS Repository, a Node.js server. They may be written in Javascript.")]),e._v(" "),t("p",[e._v("Examples of the above adapters can be found "),t("a",{attrs:{href:"https://github.com/cassproject/CASS/tree/master/src/main/resources/c-adapter",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"intermediate-apis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#intermediate-apis"}},[e._v("#")]),e._v(" Intermediate APIs")]),e._v(" "),t("p",[e._v("If your stack is fundamentally incompatible with CASS, or you wish to centralize security and CASS operations, a common method is to create an intermediate server that invokes CASS operations based on database entries, web services, or other invocation methods.")]),e._v(" "),t("p",[e._v("The CASS Library is compatible with "),t("strong",[e._v("Node.js")]),e._v(", a Javascript platform capable of serving web services and interoperating with other technology. These intermediate APIs provide a clean separation between CASS and other systems.")]),e._v(" "),t("h3",{attrs:{id:"issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues"}},[e._v("#")]),e._v(" Issues")]),e._v(" "),t("h4",{attrs:{id:"user-management"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#user-management"}},[e._v("#")]),e._v(" User Management")]),e._v(" "),t("p",[e._v("CASS has anonymous identifiers built into each object that enable federated and permissioned access to objects. One role of an intermediate API is to translate users internal to your system into these identifiers and, perhaps, manage the identities.")]),e._v(" "),t("h3",{attrs:{id:"performance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#performance"}},[e._v("#")]),e._v(" Performance")]),e._v(" "),t("p",[e._v("Depending on the processes involved, performance of the intermediate API can become an issue, as resources may be scattered across the internet.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{680:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adapters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adapters"}},[e._v("#")]),e._v(" Adapters")]),e._v(" "),t("p",[t("strong",[e._v("Adapters")]),e._v(" may also be referred to as "),t("strong",[e._v("Application APIs")]),e._v(".")]),e._v(" "),t("p",[e._v("If the notion of client-side security makes you queasy, or you simply want to own all the data, but still want to operate with CASS, there are options available.")]),e._v(" "),t("p",[e._v("It is possible, in CASS, to extend the capabilities of the CASS Repository with additional web service endpoints and functionality. These are known in the CASS Ecosystem as adapters, and provide server-side interoperability for other services or endpoints.")]),e._v(" "),t("p",[e._v("Some examples of existing Adapters:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("ASN Adapter")]),e._v(" for converting automatically between Achievement Standards Network Competency Schema and CASS Schema.")]),e._v(" "),t("li",[t("strong",[e._v("JSON-LD Adapter")]),e._v(" for ingesting Named Graphs of objects and exposing them in a CASS Repository.")]),e._v(" "),t("li",[t("strong",[e._v("Moodle Adapter")]),e._v(" for synchronizing competencies with the Moodle LMS.")]),e._v(" "),t("li",[t("strong",[e._v("xAPI Adapter")]),e._v(" for automatically converting Completed or Passed statements into assertions of competence.")])]),e._v(" "),t("p",[e._v("Read the attached sub-pages for more depth on each existing adapters.")]),e._v(" "),t("p",[e._v("Adapters run on the CASS Repository, a Node.js server. They may be written in Javascript.")]),e._v(" "),t("p",[e._v("Examples of the above adapters can be found "),t("a",{attrs:{href:"https://github.com/cassproject/CASS/tree/master/src/main/resources/c-adapter",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"intermediate-apis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#intermediate-apis"}},[e._v("#")]),e._v(" Intermediate APIs")]),e._v(" "),t("p",[e._v("If your stack is fundamentally incompatible with CASS, or you wish to centralize security and CASS operations, a common method is to create an intermediate server that invokes CASS operations based on database entries, web services, or other invocation methods.")]),e._v(" "),t("p",[e._v("The CASS Library is compatible with "),t("strong",[e._v("Node.js")]),e._v(", a Javascript platform capable of serving web services and interoperating with other technology. These intermediate APIs provide a clean separation between CASS and other systems.")]),e._v(" "),t("h3",{attrs:{id:"issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues"}},[e._v("#")]),e._v(" Issues")]),e._v(" "),t("h4",{attrs:{id:"user-management"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#user-management"}},[e._v("#")]),e._v(" User Management")]),e._v(" "),t("p",[e._v("CASS has anonymous identifiers built into each object that enable federated and permissioned access to objects. One role of an intermediate API is to translate users internal to your system into these identifiers and, perhaps, manage the identities.")]),e._v(" "),t("h3",{attrs:{id:"performance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#performance"}},[e._v("#")]),e._v(" Performance")]),e._v(" "),t("p",[e._v("Depending on the processes involved, performance of the intermediate API can become an issue, as resources may be scattered across the internet.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/59.ac727e60.js.gz b/docs/assets/js/59.ac727e60.js.gz new file mode 100644 index 000000000..75015615c Binary files /dev/null and b/docs/assets/js/59.ac727e60.js.gz differ diff --git a/docs/assets/js/59.e8942499.js.gz b/docs/assets/js/59.e8942499.js.gz deleted file mode 100644 index d0d04da42..000000000 Binary files a/docs/assets/js/59.e8942499.js.gz and /dev/null differ diff --git a/docs/assets/js/60.8c0f4ba7.js.gz b/docs/assets/js/60.8c0f4ba7.js.gz deleted file mode 100644 index 7ae5e06cb..000000000 Binary files a/docs/assets/js/60.8c0f4ba7.js.gz and /dev/null differ diff --git a/docs/assets/js/60.8c0f4ba7.js b/docs/assets/js/60.e2d99f4c.js similarity index 96% rename from docs/assets/js/60.8c0f4ba7.js rename to docs/assets/js/60.e2d99f4c.js index 741b00b00..40d2b3400 100644 --- a/docs/assets/js/60.8c0f4ba7.js +++ b/docs/assets/js/60.e2d99f4c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{681:function(a,t,s){"use strict";s.r(t);var r=s(69),e=Object(r.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"achievement-standards-network"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#achievement-standards-network"}},[a._v("#")]),a._v(" Achievement Standards Network")]),a._v(" "),t("p",[a._v("The ASN Adapter converts CaSS Frameworks to and from ASN.")]),a._v(" "),t("p",[t("strong",[a._v("Endpoints")])]),a._v(" "),t("div",{staticClass:"language-hs extra-class"},[t("pre",{pre:!0,attrs:{class:"language-hs"}},[t("code",[t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("asn")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("framework")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Retrieve ASN version of framework")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("POST")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("asn")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Convert ASN framework to CaSS Framework")]),a._v("\n")])])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{682:function(a,t,s){"use strict";s.r(t);var r=s(69),e=Object(r.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"achievement-standards-network"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#achievement-standards-network"}},[a._v("#")]),a._v(" Achievement Standards Network")]),a._v(" "),t("p",[a._v("The ASN Adapter converts CaSS Frameworks to and from ASN.")]),a._v(" "),t("p",[t("strong",[a._v("Endpoints")])]),a._v(" "),t("div",{staticClass:"language-hs extra-class"},[t("pre",{pre:!0,attrs:{class:"language-hs"}},[t("code",[t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("asn")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("framework")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Retrieve ASN version of framework")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("POST")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("asn")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Convert ASN framework to CaSS Framework")]),a._v("\n")])])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/60.e2d99f4c.js.gz b/docs/assets/js/60.e2d99f4c.js.gz new file mode 100644 index 000000000..9b3612566 Binary files /dev/null and b/docs/assets/js/60.e2d99f4c.js.gz differ diff --git a/docs/assets/js/61.81bdf4be.js.gz b/docs/assets/js/61.81bdf4be.js.gz deleted file mode 100644 index d26e315a4..000000000 Binary files a/docs/assets/js/61.81bdf4be.js.gz and /dev/null differ diff --git a/docs/assets/js/61.81bdf4be.js b/docs/assets/js/61.ce3a24b3.js similarity index 96% rename from docs/assets/js/61.81bdf4be.js rename to docs/assets/js/61.ce3a24b3.js index b62299f82..eb2e3b4bf 100644 --- a/docs/assets/js/61.81bdf4be.js +++ b/docs/assets/js/61.ce3a24b3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{684:function(a,t,s){"use strict";s.r(t);var e=s(69),r=Object(e.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"credential-engine-asn"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#credential-engine-asn"}},[a._v("#")]),a._v(" Credential Engine ASN")]),a._v(" "),t("p",[a._v("The CEASN Adapter converts CaSS Frameworks to and from "),t("a",{attrs:{href:"https://credreg.net/ctdlasn/handbook",target:"_blank",rel:"noopener noreferrer"}},[a._v("CTDL-ASN"),t("OutboundLink")],1),a._v(".")]),a._v(" "),t("p",[t("strong",[a._v("Endpoints")])]),a._v(" "),t("div",{staticClass:"language-hs extra-class"},[t("pre",{pre:!0,attrs:{class:"language-hs"}},[t("code",[t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("ceasn")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("framework")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Retrieve CTDL-ASN version of framework")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("POST")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("ceasn")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Convert CTDL-ASN framework to CaSS Framework")]),a._v("\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{681:function(a,t,s){"use strict";s.r(t);var e=s(69),r=Object(e.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"credential-engine-asn"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#credential-engine-asn"}},[a._v("#")]),a._v(" Credential Engine ASN")]),a._v(" "),t("p",[a._v("The CEASN Adapter converts CaSS Frameworks to and from "),t("a",{attrs:{href:"https://credreg.net/ctdlasn/handbook",target:"_blank",rel:"noopener noreferrer"}},[a._v("CTDL-ASN"),t("OutboundLink")],1),a._v(".")]),a._v(" "),t("p",[t("strong",[a._v("Endpoints")])]),a._v(" "),t("div",{staticClass:"language-hs extra-class"},[t("pre",{pre:!0,attrs:{class:"language-hs"}},[t("code",[t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("ceasn")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("framework")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Retrieve CTDL-ASN version of framework")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token constant"}},[a._v("POST")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),t("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("ceasn")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Convert CTDL-ASN framework to CaSS Framework")]),a._v("\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/61.ce3a24b3.js.gz b/docs/assets/js/61.ce3a24b3.js.gz new file mode 100644 index 000000000..143969899 Binary files /dev/null and b/docs/assets/js/61.ce3a24b3.js.gz differ diff --git a/docs/assets/js/62.2156f6ac.js b/docs/assets/js/62.0a0bae63.js similarity index 91% rename from docs/assets/js/62.2156f6ac.js rename to docs/assets/js/62.0a0bae63.js index 6173de99c..ea8a49c61 100644 --- a/docs/assets/js/62.2156f6ac.js +++ b/docs/assets/js/62.0a0bae63.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{682:function(t,e,s){"use strict";s.r(e);var i=s(69),a=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"ims-case"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ims-case"}},[this._v("#")]),this._v(" IMS CASE")]),this._v(" "),t("p",[this._v("The IMS CASE Adapter is an implementation of the IMS CASE Specification that converts CaSS Frameworks to and from CASE. The specification is described "),t("a",{attrs:{href:"http://www.imsglobal.org/activity/case",target:"_blank",rel:"noopener noreferrer"}},[this._v("here"),t("OutboundLink")],1),this._v(".")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{683:function(t,e,s){"use strict";s.r(e);var i=s(69),a=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"ims-case"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ims-case"}},[this._v("#")]),this._v(" IMS CASE")]),this._v(" "),t("p",[this._v("The IMS CASE Adapter is an implementation of the IMS CASE Specification that converts CaSS Frameworks to and from CASE. The specification is described "),t("a",{attrs:{href:"http://www.imsglobal.org/activity/case",target:"_blank",rel:"noopener noreferrer"}},[this._v("here"),t("OutboundLink")],1),this._v(".")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/62.0a0bae63.js.gz b/docs/assets/js/62.0a0bae63.js.gz new file mode 100644 index 000000000..a466e89a3 Binary files /dev/null and b/docs/assets/js/62.0a0bae63.js.gz differ diff --git a/docs/assets/js/62.2156f6ac.js.gz b/docs/assets/js/62.2156f6ac.js.gz deleted file mode 100644 index 21780d55a..000000000 Binary files a/docs/assets/js/62.2156f6ac.js.gz and /dev/null differ diff --git a/docs/assets/js/63.2ca63771.js.gz b/docs/assets/js/63.2ca63771.js.gz deleted file mode 100644 index 58437bebf..000000000 Binary files a/docs/assets/js/63.2ca63771.js.gz and /dev/null differ diff --git a/docs/assets/js/63.2ca63771.js b/docs/assets/js/63.f21c442e.js similarity index 98% rename from docs/assets/js/63.2ca63771.js rename to docs/assets/js/63.f21c442e.js index 4ce52001d..895fd44bf 100644 --- a/docs/assets/js/63.2ca63771.js +++ b/docs/assets/js/63.f21c442e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{683:function(a,s,t){"use strict";t.r(s);var e=t(69),r=Object(e.a)({},(function(){var a=this,s=a._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[s("h1",{attrs:{id:"ims-open-badge-2-0"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ims-open-badge-2-0"}},[a._v("#")]),a._v(" IMS Open Badge 2.0")]),a._v(" "),s("p",[a._v("The IMS Open Badge Adapter converts assertions that have been shared with the adapter into IMS Open Badge assertions.")]),a._v(" "),s("p",[s("strong",[a._v("Endpoints")])]),a._v(" "),s("div",{staticClass:"language-hs extra-class"},[s("pre",{pre:!0,attrs:{class:"language-hs"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("assertion")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("assertion")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Assertion for a competency assertion")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("class")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("competency")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Class for a competency")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("profile")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("public")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("key")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("fingerprint")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Profile for an identifier and Person object")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("cryptographicKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("public")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("key")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("fingerprint")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Cryptographic Key for an identifier and Person object")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("pk")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Get public key of the Open Badge Adapter")]),a._v("\n")])])])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{685:function(a,s,t){"use strict";t.r(s);var e=t(69),r=Object(e.a)({},(function(){var a=this,s=a._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[s("h1",{attrs:{id:"ims-open-badge-2-0"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ims-open-badge-2-0"}},[a._v("#")]),a._v(" IMS Open Badge 2.0")]),a._v(" "),s("p",[a._v("The IMS Open Badge Adapter converts assertions that have been shared with the adapter into IMS Open Badge assertions.")]),a._v(" "),s("p",[s("strong",[a._v("Endpoints")])]),a._v(" "),s("div",{staticClass:"language-hs extra-class"},[s("pre",{pre:!0,attrs:{class:"language-hs"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("assertion")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("assertion")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Assertion for a competency assertion")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("class")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("competency")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Class for a competency")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("profile")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("public")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("key")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("fingerprint")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Profile for an identifier and Person object")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("cryptographicKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/<")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("public")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("key")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("fingerprint")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Generate Open Badge Cryptographic Key for an identifier and Person object")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token constant"}},[a._v("GET")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("badge")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[a._v("pk")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[a._v("-- Get public key of the Open Badge Adapter")]),a._v("\n")])])])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/63.f21c442e.js.gz b/docs/assets/js/63.f21c442e.js.gz new file mode 100644 index 000000000..445bf64a4 Binary files /dev/null and b/docs/assets/js/63.f21c442e.js.gz differ diff --git a/docs/assets/js/64.11981a6a.js.gz b/docs/assets/js/64.11981a6a.js.gz deleted file mode 100644 index 7b28c1f0a..000000000 Binary files a/docs/assets/js/64.11981a6a.js.gz and /dev/null differ diff --git a/docs/assets/js/64.11981a6a.js b/docs/assets/js/64.f98999e9.js similarity index 97% rename from docs/assets/js/64.11981a6a.js rename to docs/assets/js/64.f98999e9.js index 0e34e64f0..7fc89a7d2 100644 --- a/docs/assets/js/64.11981a6a.js +++ b/docs/assets/js/64.f98999e9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{685:function(s,a,t){"use strict";t.r(a);var e=t(69),r=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"moodle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#moodle"}},[s._v("#")]),s._v(" Moodle")]),s._v(" "),a("p",[s._v("The Moodle Adapter reads and writes competency frameworks to Moodle from CaSS.")]),s._v(" "),a("p",[a("strong",[s._v("Configuration")])]),s._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v('"enabled"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v('"moodleToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"token of api permissioned user"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v('"moodleEndpoint"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"https://moodle.endpoint/api/"')]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])])]),a("p",[a("strong",[s._v("Endpoints")])]),s._v(" "),a("div",{staticClass:"language-hs extra-class"},[a("pre",{pre:!0,attrs:{class:"language-hs"}},[a("code",[a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("GET")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("api")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("moodle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("cassToMoodle")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("-- Copy frameworks from CaSS to Moodle")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("GET")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("api")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("moodle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("moodleToCass")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("-- Copy frameworks from Moodle to CaSS")]),s._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{684:function(s,a,t){"use strict";t.r(a);var e=t(69),r=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"moodle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#moodle"}},[s._v("#")]),s._v(" Moodle")]),s._v(" "),a("p",[s._v("The Moodle Adapter reads and writes competency frameworks to Moodle from CaSS.")]),s._v(" "),a("p",[a("strong",[s._v("Configuration")])]),s._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v('"enabled"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v('"moodleToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"token of api permissioned user"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v('"moodleEndpoint"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"https://moodle.endpoint/api/"')]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])])]),a("p",[a("strong",[s._v("Endpoints")])]),s._v(" "),a("div",{staticClass:"language-hs extra-class"},[a("pre",{pre:!0,attrs:{class:"language-hs"}},[a("code",[a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("GET")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("api")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("moodle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("cassToMoodle")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("-- Copy frameworks from CaSS to Moodle")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("GET")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("api")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("moodle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token hvariable"}},[s._v("moodleToCass")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("-- Copy frameworks from Moodle to CaSS")]),s._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/64.f98999e9.js.gz b/docs/assets/js/64.f98999e9.js.gz new file mode 100644 index 000000000..7f6e79fa8 Binary files /dev/null and b/docs/assets/js/64.f98999e9.js.gz differ diff --git a/docs/assets/js/65.b8eda6f5.js b/docs/assets/js/65.31f0ec40.js similarity index 99% rename from docs/assets/js/65.b8eda6f5.js rename to docs/assets/js/65.31f0ec40.js index cecef16ce..f6f18b5ff 100644 --- a/docs/assets/js/65.b8eda6f5.js +++ b/docs/assets/js/65.31f0ec40.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{687:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"xapi-adapter"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#xapi-adapter"}},[t._v("#")]),t._v(" xAPI Adapter")]),t._v(" "),s("p",[t._v("The xAPI Adapter reads an LRS and creates competency assertions about learners. It creates an assertion when there is a scored event that has both actor mailbox and an authority mailbox that match public individuals in the CaSS system. No verbs are filtered by default, but again, the statements must be scored. Also required is an alignment from the xAPI object ID to the competency.")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CreativeWork"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"educationalAlignment"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AlignmentObject"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alignmentType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"teaches"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"targetUrl"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://army.mil/task/081-831-0033"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c710d/1525956177976"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://www.medtrng.com/blackboard/field_medical_card.htm"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"xapi-statement"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#xapi-statement"}},[t._v("#")]),t._v(" xAPI Statement")]),t._v(" "),s("p",[t._v("The xAPI adapter requires the xapi statements have the following fields in order to create a competency assertion (where "),s("code",[t._v("// OR")]),t._v(" represents that the two surrounding properties are mutually exclusive):")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"actor"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// OR")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"account"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"authority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// OR")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"account"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"result"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" <"),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" or "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(">"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// OR")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"score"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"scaled"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"object"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#configuration"}},[t._v("#")]),t._v(" Configuration")]),t._v(" "),s("p",[t._v("There are two ways to configure the xAPI adapter:")]),t._v(" "),s("ul",[s("li",[s("em",[t._v("Forward")]),t._v(" statements to CaSS")]),t._v(" "),s("li",[t._v("Tell CaSS to "),s("em",[t._v("poll")]),t._v(" the xAPI endpoint for statements")])]),t._v(" "),s("h3",{attrs:{id:"forwarding-based"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#forwarding-based"}},[t._v("#")]),t._v(" Forwarding-Based")]),t._v(" "),s("p",[t._v("Forward entire statements to")]),t._v(" "),s("p",[s("code",[t._v("/api/xapi/statement")]),t._v("\nor\n"),s("code",[t._v("/api/xapi/statements")])]),t._v(" "),s("p",[t._v("for example:")]),t._v(" "),s("p",[s("code",[t._v("https://dev.cassproject.org/api/xapi/statement")])]),t._v(" "),s("p",[t._v("Depending on the LRS, /statements may be appended to the endpoint you provide. Check individual LRS documentation and logs.")]),t._v(" "),s("h3",{attrs:{id:"polling-based"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#polling-based"}},[t._v("#")]),t._v(" Polling-Based")]),t._v(" "),s("p",[t._v("If you have only one endpoint to connect, you can just edit "),s("code",[t._v("/etc/adapter.xapi.json")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"enabled"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiAuth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Basic ..."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiEndpoint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/xapi/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiHostName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("If you wish to connect to multiple endpoints, you can pass in environment variables with the necessary information:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"XAPI_CONFIG_1"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiAuth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Basic ..."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiEndpoint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/xapi/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiHostName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"XAPI_CONFIG_2"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiAuth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Basic ..."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiEndpoint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint2/xapi/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiHostName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint2/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[s("strong",[t._v("Endpoints")])]),t._v(" "),s("div",{staticClass:"language-hs extra-class"},[s("pre",{pre:!0,attrs:{class:"language-hs"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("GET")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[t._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[t._v("xapi")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[t._v("tick")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("-- Process any unprocessed xAPI statements. Intended to be used with a cron job")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{686:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"xapi-adapter"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#xapi-adapter"}},[t._v("#")]),t._v(" xAPI Adapter")]),t._v(" "),s("p",[t._v("The xAPI Adapter reads an LRS and creates competency assertions about learners. It creates an assertion when there is a scored event that has both actor mailbox and an authority mailbox that match public individuals in the CaSS system. No verbs are filtered by default, but again, the statements must be scored. Also required is an alignment from the xAPI object ID to the competency.")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CreativeWork"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"educationalAlignment"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AlignmentObject"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alignmentType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"teaches"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"targetUrl"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://army.mil/task/081-831-0033"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c710d/1525956177976"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://www.medtrng.com/blackboard/field_medical_card.htm"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"xapi-statement"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#xapi-statement"}},[t._v("#")]),t._v(" xAPI Statement")]),t._v(" "),s("p",[t._v("The xAPI adapter requires the xapi statements have the following fields in order to create a competency assertion (where "),s("code",[t._v("// OR")]),t._v(" represents that the two surrounding properties are mutually exclusive):")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"actor"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// OR")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"account"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"authority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// OR")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"account"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"result"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" <"),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" or "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(">"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// OR")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"score"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"scaled"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"object"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#configuration"}},[t._v("#")]),t._v(" Configuration")]),t._v(" "),s("p",[t._v("There are two ways to configure the xAPI adapter:")]),t._v(" "),s("ul",[s("li",[s("em",[t._v("Forward")]),t._v(" statements to CaSS")]),t._v(" "),s("li",[t._v("Tell CaSS to "),s("em",[t._v("poll")]),t._v(" the xAPI endpoint for statements")])]),t._v(" "),s("h3",{attrs:{id:"forwarding-based"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#forwarding-based"}},[t._v("#")]),t._v(" Forwarding-Based")]),t._v(" "),s("p",[t._v("Forward entire statements to")]),t._v(" "),s("p",[s("code",[t._v("/api/xapi/statement")]),t._v("\nor\n"),s("code",[t._v("/api/xapi/statements")])]),t._v(" "),s("p",[t._v("for example:")]),t._v(" "),s("p",[s("code",[t._v("https://dev.cassproject.org/api/xapi/statement")])]),t._v(" "),s("p",[t._v("Depending on the LRS, /statements may be appended to the endpoint you provide. Check individual LRS documentation and logs.")]),t._v(" "),s("h3",{attrs:{id:"polling-based"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#polling-based"}},[t._v("#")]),t._v(" Polling-Based")]),t._v(" "),s("p",[t._v("If you have only one endpoint to connect, you can just edit "),s("code",[t._v("/etc/adapter.xapi.json")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"enabled"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiAuth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Basic ..."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiEndpoint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/xapi/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiHostName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("If you wish to connect to multiple endpoints, you can pass in environment variables with the necessary information:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"XAPI_CONFIG_1"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiAuth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Basic ..."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiEndpoint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/xapi/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiHostName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"XAPI_CONFIG_2"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiAuth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Basic ..."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiEndpoint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint2/xapi/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xapiHostName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://xapi.endpoint2/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[s("strong",[t._v("Endpoints")])]),t._v(" "),s("div",{staticClass:"language-hs extra-class"},[s("pre",{pre:!0,attrs:{class:"language-hs"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("GET")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[t._v("api")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[t._v("xapi")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token hvariable"}},[t._v("tick")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("-- Process any unprocessed xAPI statements. Intended to be used with a cron job")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/65.b8eda6f5.js.gz b/docs/assets/js/65.31f0ec40.js.gz similarity index 94% rename from docs/assets/js/65.b8eda6f5.js.gz rename to docs/assets/js/65.31f0ec40.js.gz index a94e9c464..b2dd39a17 100644 Binary files a/docs/assets/js/65.b8eda6f5.js.gz and b/docs/assets/js/65.31f0ec40.js.gz differ diff --git a/docs/assets/js/66.7a4bd6f5.js.gz b/docs/assets/js/66.7a4bd6f5.js.gz deleted file mode 100644 index 6021e242f..000000000 Binary files a/docs/assets/js/66.7a4bd6f5.js.gz and /dev/null differ diff --git a/docs/assets/js/66.7a4bd6f5.js b/docs/assets/js/66.9f78183e.js similarity index 98% rename from docs/assets/js/66.7a4bd6f5.js rename to docs/assets/js/66.9f78183e.js index f3104d14f..35e8389e8 100644 --- a/docs/assets/js/66.7a4bd6f5.js +++ b/docs/assets/js/66.9f78183e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{686:function(e,t,a){"use strict";a.r(t);var o=a(69),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"other-schemas"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-schemas"}},[e._v("#")]),e._v(" Other Schemas")]),e._v(" "),t("p",[e._v("This page discusses how to work with other outside schemas.")]),e._v(" "),t("p",[e._v("CaSS Libraries includes "),t("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/modules/org.schema.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("schemata for schema.org"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/modules/org.credentialengine.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("schemata for the Credential Engine (CTDL)"),t("OutboundLink")],1),e._v(". These expose large numbers of objects that are not related to competencies and frameworks and are included for convenience and to encourage interoperability.")]),e._v(" "),t("p",[e._v("Additionally, CaSS schemas may be extended with additional information. These same principles apply.")]),e._v(" "),t("h2",{attrs:{id:"concerns"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#concerns"}},[e._v("#")]),e._v(" Concerns")]),e._v(" "),t("p",[e._v("While working with these other objects, several additional concerns must be taken into account:")]),e._v(" "),t("ul",[t("li",[e._v("CaSS objects (usually prefixed with "),t("code",[e._v("Ec")]),e._v(" such as "),t("code",[e._v("EcAssertion")]),e._v(") have helper functions and security/privacy expectations built into them. Though they may reference personally identifiable and sensitive information these mechanisms may not be built into objects belonging to another schema. It is extremely important to safeguard the security and privacy of the data contained within these objects, as by default, all information stored in CaSS is publicly discoverable and accessible.")]),e._v(" "),t("li",[e._v("When performing operations that generate data that is accessible to the internet, it is worthwhile to scan for other uses of the objects you have chosen and determine its compatibility with other others. Guidelines can be found at "),t("a",{attrs:{href:"https://developers.google.com/search/docs/data-types/articles",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google"),t("OutboundLink")],1),e._v(", and in so-called “Profiles” such as this one from "),t("a",{attrs:{href:"https://www.ibm.com/developerworks/rational/library/basic-profile-linked-data/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBM"),t("OutboundLink")],1),e._v(". Profiles can vary widely in scope and application but have been described as patterns of behavior around the population and use of common data objects for interoperability purposes. Profiles can also be found associated with "),t("a",{attrs:{href:"http://datainteroperability.org/research-activity-xapi-data-interoperability/xapi-profiles/",target:"_blank",rel:"noopener noreferrer"}},[e._v("other efforts"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"advantages"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advantages"}},[e._v("#")]),e._v(" Advantages")]),e._v(" "),t("p",[e._v("Using the patterns of application development that CaSS enables the sharing of permissioned objects, cooperative data interaction, and rapid application development.")]),e._v(" "),t("h2",{attrs:{id:"future"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#future"}},[e._v("#")]),e._v(" Future")]),e._v(" "),t("p",[e._v("We expect that at some point in the future, the CaSS methodology will be generalized into its own set of frameworks with its own name.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{687:function(e,t,a){"use strict";a.r(t);var o=a(69),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"other-schemas"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-schemas"}},[e._v("#")]),e._v(" Other Schemas")]),e._v(" "),t("p",[e._v("This page discusses how to work with other outside schemas.")]),e._v(" "),t("p",[e._v("CaSS Libraries includes "),t("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/modules/org.schema.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("schemata for schema.org"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/modules/org.credentialengine.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("schemata for the Credential Engine (CTDL)"),t("OutboundLink")],1),e._v(". These expose large numbers of objects that are not related to competencies and frameworks and are included for convenience and to encourage interoperability.")]),e._v(" "),t("p",[e._v("Additionally, CaSS schemas may be extended with additional information. These same principles apply.")]),e._v(" "),t("h2",{attrs:{id:"concerns"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#concerns"}},[e._v("#")]),e._v(" Concerns")]),e._v(" "),t("p",[e._v("While working with these other objects, several additional concerns must be taken into account:")]),e._v(" "),t("ul",[t("li",[e._v("CaSS objects (usually prefixed with "),t("code",[e._v("Ec")]),e._v(" such as "),t("code",[e._v("EcAssertion")]),e._v(") have helper functions and security/privacy expectations built into them. Though they may reference personally identifiable and sensitive information these mechanisms may not be built into objects belonging to another schema. It is extremely important to safeguard the security and privacy of the data contained within these objects, as by default, all information stored in CaSS is publicly discoverable and accessible.")]),e._v(" "),t("li",[e._v("When performing operations that generate data that is accessible to the internet, it is worthwhile to scan for other uses of the objects you have chosen and determine its compatibility with other others. Guidelines can be found at "),t("a",{attrs:{href:"https://developers.google.com/search/docs/data-types/articles",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google"),t("OutboundLink")],1),e._v(", and in so-called “Profiles” such as this one from "),t("a",{attrs:{href:"https://www.ibm.com/developerworks/rational/library/basic-profile-linked-data/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBM"),t("OutboundLink")],1),e._v(". Profiles can vary widely in scope and application but have been described as patterns of behavior around the population and use of common data objects for interoperability purposes. Profiles can also be found associated with "),t("a",{attrs:{href:"http://datainteroperability.org/research-activity-xapi-data-interoperability/xapi-profiles/",target:"_blank",rel:"noopener noreferrer"}},[e._v("other efforts"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"advantages"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#advantages"}},[e._v("#")]),e._v(" Advantages")]),e._v(" "),t("p",[e._v("Using the patterns of application development that CaSS enables the sharing of permissioned objects, cooperative data interaction, and rapid application development.")]),e._v(" "),t("h2",{attrs:{id:"future"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#future"}},[e._v("#")]),e._v(" Future")]),e._v(" "),t("p",[e._v("We expect that at some point in the future, the CaSS methodology will be generalized into its own set of frameworks with its own name.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/66.9f78183e.js.gz b/docs/assets/js/66.9f78183e.js.gz new file mode 100644 index 000000000..f90cd152e Binary files /dev/null and b/docs/assets/js/66.9f78183e.js.gz differ diff --git a/docs/assets/js/67.cc44ec92.js b/docs/assets/js/67.a9730c52.js similarity index 99% rename from docs/assets/js/67.cc44ec92.js rename to docs/assets/js/67.a9730c52.js index 8d7a41490..fa02d43c9 100644 --- a/docs/assets/js/67.cc44ec92.js +++ b/docs/assets/js/67.a9730c52.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{689:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"assertion-processing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#assertion-processing"}},[t._v("#")]),t._v(" Assertion Processing")]),t._v(" "),s("blockquote",[s("p",[t._v("Assertion processing is the process of answering questions about an individual based on a chosen algorithm using some amount of data.")])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("READ ME FIRST")]),t._v(" "),s("p",[t._v("Be sure to read the "),s("RouterLink",{attrs:{to:"/guide/assertion-processing/"}},[t._v("High-Level guide's Assertion Processing Section")]),t._v(" for more information on this topic beforehand.")],1)]),t._v(" "),s("p",[t._v("This page will discuss how to process collections of CaSS Assertions, which will be attached to some CaSS Competencies as well as Identitites.")]),t._v(" "),s("h2",{attrs:{id:"types-of-processors"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#types-of-processors"}},[t._v("#")]),t._v(" Types of Processors")]),t._v(" "),s("p",[t._v("There are currently two types of assertion processors and three co-processors.")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Built-in Processors")]),t._v(" "),s("ol",[s("li",[s("em",[t._v("OptimisticQuadnaryAssertionProcessor")])]),t._v(" "),s("li",[s("em",[t._v("PessimisticQuadnaryAssertionProcessor")])])])]),t._v(" "),s("p",[t._v("The "),s("strong",[t._v("OptimisticQuadnaryAssertionProcessor")]),t._v(" object answers the question")]),t._v(" "),s("blockquote",[s("p",[t._v("“Does Learner L have Competency C based on an optimistic view of competence?”")])]),t._v(" "),s("p",[t._v("The optimistic view states that if the following framework exists")]),t._v(" "),s("blockquote",[s("p",[s("strong",[t._v("Basic Arithmetic")])]),t._v(" "),s("ul",[s("li",[t._v("Addition "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])]),t._v(" "),s("li",[t._v("Subtraction "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])]),t._v(" "),s("li",[t._v("Multiplication "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])]),t._v(" "),s("li",[t._v("Division "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])])])]),t._v(" "),s("p",[t._v("and someone has assertions for "),s("em",[t._v("Addition, Subtraction, Multiplication,")]),t._v(" and "),s("em",[t._v("Division")]),t._v(", that they have Basic Arithmetic.")]),t._v(" "),s("p",[t._v("The pessimistic view taken by the "),s("strong",[t._v("PessimisticQuadnaryAssertionProcessor")]),t._v(" object does not make this assumption, instead believing that Basic Arithmetic could have additional competence that has not been modeled in CaSS.")]),t._v(" "),s("p",[t._v("Both processors are Quadnary Processors.")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Quadnary Processor")]),t._v(" "),s("p",[t._v("Can return four answers:")]),t._v(" "),s("ol",[s("li",[t._v("Yes")]),t._v(" "),s("li",[t._v("No")]),t._v(" "),s("li",[t._v("Indeterminate "),s("em",[t._v("(conflicting evidence)")])]),t._v(" "),s("li",[t._v("Unknown "),s("em",[t._v("(not enough information)")])])])]),t._v(" "),s("p",[t._v("Assertion Processors interpret knowledge encoded in relationships to make additional inferences about frameworks. As an example, if someone has an assertion for Basic Arithmetic, it is assumed they have Addition. Additionally, if they have a negative assertion stating they do not have Addition, that they do not have Basic Arithmetic.")]),t._v(" "),s("p",[t._v("Similarly, if Subtraction requires Addition, and there is a negative assertion about Addition, they cannot have Subtraction. If there is a positive assertion about Subtraction, then it is presumed they have Addition.")]),t._v(" "),s("p",[s("strong",[t._v("Equivalence")]),t._v(" is also observed.")]),t._v(" "),s("h2",{attrs:{id:"identity-scope-and-access"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#identity-scope-and-access"}},[t._v("#")]),t._v(" Identity, Scope, and Access")]),t._v(" "),s("p",[t._v("The type of assertion processor determines the assumptions that are made in computing some assertion, but scope, identity and access also have factors in making these decisions.")]),t._v(" "),s("p",[t._v("When launching an assertion processor, you should provide all known identities for the individual, all frameworks that your institution observes, and all servers that the individual has records on. Finally, if you do not have access to the necessary records, you may receive results that do not align with reality. The individual, with all their identities, has the best visibility into their competence.")]),t._v(" "),s("h2",{attrs:{id:"running-an-assertion-processor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#running-an-assertion-processor"}},[t._v("#")]),t._v(" Running an Assertion Processor")]),t._v(" "),s("p",[t._v("The below code runs the assertion processor with one identity, targeting one competency in one framework,")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" ep "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("PessimisticQuadnaryAssertionProcessor")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nep"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("logFunction")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nep"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("repositories"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" subject "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Array")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nsubject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("target"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" additionalSignatures "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nep"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("has")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n subject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n competency"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n level"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n framework"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n additionalSignatures"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("success"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("ask")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ask"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("failure"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"co-processors"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#co-processors"}},[t._v("#")]),t._v(" Co-Processors")]),t._v(" "),s("p",[t._v("A Co-Processor is a processor that can be tacked onto an assertion processor to augment its processing capabilities.")]),t._v(" "),s("p",[t._v("One example of this is a co-processor that generates assertions of competence based on certificates that the person has. Another may query a third party system for learner data that is then converted into competency assertions.")]),t._v(" "),s("p",[t._v("Extending the class "),s("code",[t._v("AssertionCoprocessor")]),t._v(" can expose this capability.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{688:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"assertion-processing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#assertion-processing"}},[t._v("#")]),t._v(" Assertion Processing")]),t._v(" "),s("blockquote",[s("p",[t._v("Assertion processing is the process of answering questions about an individual based on a chosen algorithm using some amount of data.")])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("READ ME FIRST")]),t._v(" "),s("p",[t._v("Be sure to read the "),s("RouterLink",{attrs:{to:"/guide/assertion-processing/"}},[t._v("High-Level guide's Assertion Processing Section")]),t._v(" for more information on this topic beforehand.")],1)]),t._v(" "),s("p",[t._v("This page will discuss how to process collections of CaSS Assertions, which will be attached to some CaSS Competencies as well as Identitites.")]),t._v(" "),s("h2",{attrs:{id:"types-of-processors"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#types-of-processors"}},[t._v("#")]),t._v(" Types of Processors")]),t._v(" "),s("p",[t._v("There are currently two types of assertion processors and three co-processors.")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Built-in Processors")]),t._v(" "),s("ol",[s("li",[s("em",[t._v("OptimisticQuadnaryAssertionProcessor")])]),t._v(" "),s("li",[s("em",[t._v("PessimisticQuadnaryAssertionProcessor")])])])]),t._v(" "),s("p",[t._v("The "),s("strong",[t._v("OptimisticQuadnaryAssertionProcessor")]),t._v(" object answers the question")]),t._v(" "),s("blockquote",[s("p",[t._v("“Does Learner L have Competency C based on an optimistic view of competence?”")])]),t._v(" "),s("p",[t._v("The optimistic view states that if the following framework exists")]),t._v(" "),s("blockquote",[s("p",[s("strong",[t._v("Basic Arithmetic")])]),t._v(" "),s("ul",[s("li",[t._v("Addition "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])]),t._v(" "),s("li",[t._v("Subtraction "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])]),t._v(" "),s("li",[t._v("Multiplication "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])]),t._v(" "),s("li",[t._v("Division "),s("em",[t._v("(narrowing Basic Arithmetic via a relation)")])])])]),t._v(" "),s("p",[t._v("and someone has assertions for "),s("em",[t._v("Addition, Subtraction, Multiplication,")]),t._v(" and "),s("em",[t._v("Division")]),t._v(", that they have Basic Arithmetic.")]),t._v(" "),s("p",[t._v("The pessimistic view taken by the "),s("strong",[t._v("PessimisticQuadnaryAssertionProcessor")]),t._v(" object does not make this assumption, instead believing that Basic Arithmetic could have additional competence that has not been modeled in CaSS.")]),t._v(" "),s("p",[t._v("Both processors are Quadnary Processors.")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Quadnary Processor")]),t._v(" "),s("p",[t._v("Can return four answers:")]),t._v(" "),s("ol",[s("li",[t._v("Yes")]),t._v(" "),s("li",[t._v("No")]),t._v(" "),s("li",[t._v("Indeterminate "),s("em",[t._v("(conflicting evidence)")])]),t._v(" "),s("li",[t._v("Unknown "),s("em",[t._v("(not enough information)")])])])]),t._v(" "),s("p",[t._v("Assertion Processors interpret knowledge encoded in relationships to make additional inferences about frameworks. As an example, if someone has an assertion for Basic Arithmetic, it is assumed they have Addition. Additionally, if they have a negative assertion stating they do not have Addition, that they do not have Basic Arithmetic.")]),t._v(" "),s("p",[t._v("Similarly, if Subtraction requires Addition, and there is a negative assertion about Addition, they cannot have Subtraction. If there is a positive assertion about Subtraction, then it is presumed they have Addition.")]),t._v(" "),s("p",[s("strong",[t._v("Equivalence")]),t._v(" is also observed.")]),t._v(" "),s("h2",{attrs:{id:"identity-scope-and-access"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#identity-scope-and-access"}},[t._v("#")]),t._v(" Identity, Scope, and Access")]),t._v(" "),s("p",[t._v("The type of assertion processor determines the assumptions that are made in computing some assertion, but scope, identity and access also have factors in making these decisions.")]),t._v(" "),s("p",[t._v("When launching an assertion processor, you should provide all known identities for the individual, all frameworks that your institution observes, and all servers that the individual has records on. Finally, if you do not have access to the necessary records, you may receive results that do not align with reality. The individual, with all their identities, has the best visibility into their competence.")]),t._v(" "),s("h2",{attrs:{id:"running-an-assertion-processor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#running-an-assertion-processor"}},[t._v("#")]),t._v(" Running an Assertion Processor")]),t._v(" "),s("p",[t._v("The below code runs the assertion processor with one identity, targeting one competency in one framework,")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" ep "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("PessimisticQuadnaryAssertionProcessor")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nep"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("logFunction")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nep"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("repositories"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" subject "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Array")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nsubject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("target"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" additionalSignatures "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nep"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("has")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n subject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n competency"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n level"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n framework"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n additionalSignatures"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("success"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("ask")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ask"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("failure"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"co-processors"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#co-processors"}},[t._v("#")]),t._v(" Co-Processors")]),t._v(" "),s("p",[t._v("A Co-Processor is a processor that can be tacked onto an assertion processor to augment its processing capabilities.")]),t._v(" "),s("p",[t._v("One example of this is a co-processor that generates assertions of competence based on certificates that the person has. Another may query a third party system for learner data that is then converted into competency assertions.")]),t._v(" "),s("p",[t._v("Extending the class "),s("code",[t._v("AssertionCoprocessor")]),t._v(" can expose this capability.")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/67.cc44ec92.js.gz b/docs/assets/js/67.a9730c52.js.gz similarity index 73% rename from docs/assets/js/67.cc44ec92.js.gz rename to docs/assets/js/67.a9730c52.js.gz index eea1baec4..efc7db4f3 100644 Binary files a/docs/assets/js/67.cc44ec92.js.gz and b/docs/assets/js/67.a9730c52.js.gz differ diff --git a/docs/assets/js/68.adda27fd.js b/docs/assets/js/68.797990af.js similarity index 99% rename from docs/assets/js/68.adda27fd.js rename to docs/assets/js/68.797990af.js index 23ba7b1c3..5d1e2251b 100644 --- a/docs/assets/js/68.adda27fd.js +++ b/docs/assets/js/68.797990af.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{688:function(t,e,a){"use strict";a.r(e);var s=a(69),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"basics"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#basics"}},[t._v("#")]),t._v(" Basics")]),t._v(" "),e("p",[t._v("Using the CASS Libraries, you are able to work with a number of different sets of objects, including those from CASS, Schema.org, and the Credential Engine. CASS objects have a number of additional helper methods that aren’t currently available on the objects from the other groups.")]),t._v(" "),e("p",[t._v("This guide assumes you have a "),e("RouterLink",{attrs:{to:"/dev/fundamentals/repositories/"}},[t._v("Repository")]),t._v(" defined and an "),e("RouterLink",{attrs:{to:"/dev/fundamentals/identities-and-login/"}},[t._v("Identity")]),t._v(".")],1),t._v(" "),e("h2",{attrs:{id:"overview"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#overview"}},[t._v("#")]),t._v(" Overview")]),t._v(" "),e("p",[t._v("In general, all CASS objects follow the same inheritance model. From "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/EcLinkedData.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("EcLinkedData"),e("OutboundLink")],1),t._v(", additional fields and functionality are aggregated through three additional classes ("),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/EcRemoteLinkedData.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("EcRemoteLinkedData"),e("OutboundLink")],1),t._v(", "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/Thing.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Thing"),e("OutboundLink")],1),t._v(", and "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/CreativeWork.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("CreativeWork"),e("OutboundLink")],1),t._v(") until a base object class is created. The base object class defines all fields and operations available for working with the object itself. Another class is then created from the base object class which defines helper methods and functionality for working with the CASS environment. This is the final CASS object class and is prefixed with "),e("code",[t._v("EC")]),t._v(".")]),t._v(" "),e("p",[t._v("Example:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("EcCompetency - (CASS object class) Methods for interacting with CASS services on a server\n -> Competency - (base object class) All fields and methods needed to logically define a competency\n -> CreativeWork - Customized schema.org/CreativeWork\n -> Thing - Customized schema.org/Thing\n -> EcRemoteLinkedData - Data wrapper to represent remotely hosted data including fields for permission controls, signing, identifying and locating the object\n -> EcLinkedData - Represents a JSON-LD linked data object and performs serialization\n")])])]),e("p",[t._v("Most CASS objects include helper functions include helper methods for retrieving objects of that type (e.g. "),e("code",[t._v("EcCompetency.get()")]),t._v("). However, when using the "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/EcRepository.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("EcRepository"),e("OutboundLink")],1),t._v(" object to retrieve data (through "),e("code",[t._v(".get()")]),t._v(" and "),e("code",[t._v(".multiget()")]),t._v("), all objects are returned as "),e("code",[t._v("EcRemoteLinkedData")]),t._v(" types and must be cast into the proper CASS object.")]),t._v(" "),e("h2",{attrs:{id:"instantiation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#instantiation"}},[t._v("#")]),t._v(" Instantiation")]),t._v(" "),e("p",[t._v("In this example, we will be creating and operating on a "),e("a",{attrs:{href:"http://schema.org/Person",target:"_blank",rel:"noopener noreferrer"}},[t._v("schema.org/Person"),e("OutboundLink")],1),t._v(" object.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" p "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Person")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Frank Franklin"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("email "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"frank@franklyfrank.fr"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"internal-objects-vs-remote-objects"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#internal-objects-vs-remote-objects"}},[t._v("#")]),t._v(" Internal objects vs Remote objects")]),t._v(" "),e("p",[t._v("An object without an Id can be thought of to be an ‘internal object’, used in intermediate calculations. To convert it to an remotely accessible object, it must be assigned a URL.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"permissioning-and-ownership"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#permissioning-and-ownership"}},[t._v("#")]),t._v(" Permissioning and Ownership")]),t._v(" "),e("p",[t._v("An object without an owner is considered public and can be acted on by any party that knows or can discover its URL. This may be useful for internal repositories where trust is high, but is not advised for repositories with public interfaces. To assign an owner:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Assigns the Public Key of the first identity of the logged in user as the owner")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Adding an owner to an object informs the repository hosting the object that nobody other than the owner can modify or delete the object. Anyone may continue to read the object (though encrypted fields will be omitted for non-reader requests).")]),t._v(" "),e("h2",{attrs:{id:"readers-vs-owners"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#readers-vs-owners"}},[t._v("#")]),t._v(" Readers vs Owners")]),t._v(" "),e("p",[t._v("Adding readers to the object allows access to the object’s data, but the repository will not allow a reader to overwrite or delete an object.")]),t._v(" "),e("p",[t._v("To assign a reader:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Assigns the Public Key of the first contact of the logged in user as a reader")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("addReader")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("contacts"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pk"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("An object may have multiple owners and multiple readers.")]),t._v(" "),e("h2",{attrs:{id:"controlling-read-access"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#controlling-read-access"}},[t._v("#")]),t._v(" Controlling read access")]),t._v(" "),e("p",[t._v("In our security model, no actor should trust the repository. So, revoking read access involves encrypting the object.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" e "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcEncryptedValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("toEncryptedValue")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Note that this retains and exposes some information about the person object to the repository owner to enable "),e("RouterLink",{attrs:{to:"/dev/fundamentals/search/"}},[t._v("Search")]),t._v(": The name of the object and the object type are retained. If you would like to remove those, that’s quite alright, but it removes the ability to search by those fields. If you would like to retain any additional fields, you may copy them from the unencrypted object to the encrypted object. This will enable search by those fields (and expose them to the repository owner).")],1),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("delete")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("delete")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("encryptedType"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("To test the effects of encryption, we need to save the object and temporarily remove our identity to see that the object is no longer accessible. The repository protects encrypted objects from discovery, and the encryption protects the object against the repository owner (or server compromise).")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" repo"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" myIds "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Saving our identities elsewhere.")]),t._v("\nEcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Removing them from the expected location.")]),t._v("\nEcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cache "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Clearing the cache.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Not found")]),t._v("\nEcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myIds"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Found!")]),t._v("\n")])])]),e("p",[t._v("Now we can decrypt the object and see it is intact.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" p "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Person")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Decrypt it and cast it into the appropriate object.")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("copyFrom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcEncryptedValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("fromEcnryptedValue")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"saving-and-retrieving-objects"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#saving-and-retrieving-objects"}},[t._v("#")]),t._v(" Saving and Retrieving objects")]),t._v(" "),e("p",[t._v("An object with an ID can be saved and retrieved. Saving can be done using "),e("code",[t._v("EcRepository")]),t._v(". It's as easy as:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Retrieving an object using EcRepository it is a bit more complex due to issues with casting. All objects returned from EcRepository methods are of the EcRemoteLinkedData type and should be cast into their desired type before use. This can be done using the following pattern: First, get the object:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Alternatively,")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Then, it needs to be “"),e("em",[t._v("cast")]),t._v("” into the desired object.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Person")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("copyFrom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("All properties of the object are accessible from its "),e("em",[t._v("EcRemoteLinkedData")]),t._v(" data form ‘r’, however, helper functions that exist in the object won’t be available. This is particularly useful for "),e("code",[t._v("Competency -> EcCompetency")]),t._v(", "),e("code",[t._v("Framework -> EcFramework")]),t._v(", etc.")]),t._v(" "),e("h2",{attrs:{id:"versioning"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#versioning"}},[t._v("#")]),t._v(" Versioning")]),t._v(" "),e("p",[t._v("Upon save, an object’s version number (the last segment of the "),e("code",[t._v("@id")]),t._v(") is set to "),e("em",[t._v("the current UTC timestamp in milliseconds")]),t._v(". This can be used as a last-modified indicator as well as a version number. Versions of an object other than the latest are not discoverable unless they are linked from other objects.")]),t._v(" "),e("p",[t._v("Versions of objects exist to allow for immutable referencing of an object. As an example, if a person answers a question, it is relevant that they answered a particular version of a question with a particular version of an answer.")]),t._v(" "),e("p",[t._v("To access the identifier with the version number included:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("To access the identifier that pertains to the latest version of the object:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"validating-an-object"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#validating-an-object"}},[t._v("#")]),t._v(" Validating an object")]),t._v(" "),e("p",[t._v("You may validate one or more signatures against one or more owners using the following:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("verify")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Returns whether the object is valid.")]),t._v("\n")])])]),e("h2",{attrs:{id:"controller-coming-soon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#controller-coming-soon"}},[t._v("#")]),t._v(" Controller (Coming Soon)")]),t._v(" "),e("p",[t._v("A controller is allowed to modify who can read the object, but not any other information.")]),t._v(" "),e("h2",{attrs:{id:"guidelines"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#guidelines"}},[t._v("#")]),t._v(" Guidelines")]),t._v(" "),e("p",[t._v("In building any custom implementation, we recommend the following:")]),t._v(" "),e("ul",[e("li",[t._v("Keep objects as flat as possible, and refer to other objects via their ID. This promotes data reuse.")]),t._v(" "),e("li",[t._v("All objects should be owned by the person who created the data. There should be a separate owner for each level of organizational hierarchy ("),e("em",[t._v("e.g. person, school, school district, state")]),t._v(").")]),t._v(" "),e("li",[t._v("All objects should be readable by the people to whom the data pertains. If no keys exist for that person, it is acceptable to create keys on their behalf and give them the private portion upon next interaction (or email them).")]),t._v(" "),e("li",[t._v("Any objects containing personally identifiable information should be read-restricted unless the subject of the data wishes it to be public. This not only follows privacy laws such as FERPA, but it is also a common courtesy.")]),t._v(" "),e("li",[t._v("To enable research, any non-personally identifiable information should be publicly discoverable and accessible.")])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{691:function(t,e,a){"use strict";a.r(e);var s=a(69),n=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"basics"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#basics"}},[t._v("#")]),t._v(" Basics")]),t._v(" "),e("p",[t._v("Using the CASS Libraries, you are able to work with a number of different sets of objects, including those from CASS, Schema.org, and the Credential Engine. CASS objects have a number of additional helper methods that aren’t currently available on the objects from the other groups.")]),t._v(" "),e("p",[t._v("This guide assumes you have a "),e("RouterLink",{attrs:{to:"/dev/fundamentals/repositories/"}},[t._v("Repository")]),t._v(" defined and an "),e("RouterLink",{attrs:{to:"/dev/fundamentals/identities-and-login/"}},[t._v("Identity")]),t._v(".")],1),t._v(" "),e("h2",{attrs:{id:"overview"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#overview"}},[t._v("#")]),t._v(" Overview")]),t._v(" "),e("p",[t._v("In general, all CASS objects follow the same inheritance model. From "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/EcLinkedData.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("EcLinkedData"),e("OutboundLink")],1),t._v(", additional fields and functionality are aggregated through three additional classes ("),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/EcRemoteLinkedData.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("EcRemoteLinkedData"),e("OutboundLink")],1),t._v(", "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/Thing.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Thing"),e("OutboundLink")],1),t._v(", and "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/CreativeWork.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("CreativeWork"),e("OutboundLink")],1),t._v(") until a base object class is created. The base object class defines all fields and operations available for working with the object itself. Another class is then created from the base object class which defines helper methods and functionality for working with the CASS environment. This is the final CASS object class and is prefixed with "),e("code",[t._v("EC")]),t._v(".")]),t._v(" "),e("p",[t._v("Example:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("EcCompetency - (CASS object class) Methods for interacting with CASS services on a server\n -> Competency - (base object class) All fields and methods needed to logically define a competency\n -> CreativeWork - Customized schema.org/CreativeWork\n -> Thing - Customized schema.org/Thing\n -> EcRemoteLinkedData - Data wrapper to represent remotely hosted data including fields for permission controls, signing, identifying and locating the object\n -> EcLinkedData - Represents a JSON-LD linked data object and performs serialization\n")])])]),e("p",[t._v("Most CASS objects include helper functions include helper methods for retrieving objects of that type (e.g. "),e("code",[t._v("EcCompetency.get()")]),t._v("). However, when using the "),e("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/classes/EcRepository.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("EcRepository"),e("OutboundLink")],1),t._v(" object to retrieve data (through "),e("code",[t._v(".get()")]),t._v(" and "),e("code",[t._v(".multiget()")]),t._v("), all objects are returned as "),e("code",[t._v("EcRemoteLinkedData")]),t._v(" types and must be cast into the proper CASS object.")]),t._v(" "),e("h2",{attrs:{id:"instantiation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#instantiation"}},[t._v("#")]),t._v(" Instantiation")]),t._v(" "),e("p",[t._v("In this example, we will be creating and operating on a "),e("a",{attrs:{href:"http://schema.org/Person",target:"_blank",rel:"noopener noreferrer"}},[t._v("schema.org/Person"),e("OutboundLink")],1),t._v(" object.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" p "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Person")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Frank Franklin"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("email "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"frank@franklyfrank.fr"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"internal-objects-vs-remote-objects"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#internal-objects-vs-remote-objects"}},[t._v("#")]),t._v(" Internal objects vs Remote objects")]),t._v(" "),e("p",[t._v("An object without an Id can be thought of to be an ‘internal object’, used in intermediate calculations. To convert it to an remotely accessible object, it must be assigned a URL.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"permissioning-and-ownership"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#permissioning-and-ownership"}},[t._v("#")]),t._v(" Permissioning and Ownership")]),t._v(" "),e("p",[t._v("An object without an owner is considered public and can be acted on by any party that knows or can discover its URL. This may be useful for internal repositories where trust is high, but is not advised for repositories with public interfaces. To assign an owner:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Assigns the Public Key of the first identity of the logged in user as the owner")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Adding an owner to an object informs the repository hosting the object that nobody other than the owner can modify or delete the object. Anyone may continue to read the object (though encrypted fields will be omitted for non-reader requests).")]),t._v(" "),e("h2",{attrs:{id:"readers-vs-owners"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#readers-vs-owners"}},[t._v("#")]),t._v(" Readers vs Owners")]),t._v(" "),e("p",[t._v("Adding readers to the object allows access to the object’s data, but the repository will not allow a reader to overwrite or delete an object.")]),t._v(" "),e("p",[t._v("To assign a reader:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Assigns the Public Key of the first contact of the logged in user as a reader")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("addReader")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("contacts"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pk"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("An object may have multiple owners and multiple readers.")]),t._v(" "),e("h2",{attrs:{id:"controlling-read-access"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#controlling-read-access"}},[t._v("#")]),t._v(" Controlling read access")]),t._v(" "),e("p",[t._v("In our security model, no actor should trust the repository. So, revoking read access involves encrypting the object.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" e "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcEncryptedValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("toEncryptedValue")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Note that this retains and exposes some information about the person object to the repository owner to enable "),e("RouterLink",{attrs:{to:"/dev/fundamentals/search/"}},[t._v("Search")]),t._v(": The name of the object and the object type are retained. If you would like to remove those, that’s quite alright, but it removes the ability to search by those fields. If you would like to retain any additional fields, you may copy them from the unencrypted object to the encrypted object. This will enable search by those fields (and expose them to the repository owner).")],1),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("delete")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("delete")]),t._v(" e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("encryptedType"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("To test the effects of encryption, we need to save the object and temporarily remove our identity to see that the object is no longer accessible. The repository protects encrypted objects from discovery, and the encryption protects the object against the repository owner (or server compromise).")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" repo"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" myIds "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Saving our identities elsewhere.")]),t._v("\nEcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Removing them from the expected location.")]),t._v("\nEcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cache "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Clearing the cache.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Not found")]),t._v("\nEcIdentityManager"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myIds"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Found!")]),t._v("\n")])])]),e("p",[t._v("Now we can decrypt the object and see it is intact.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" p "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Person")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Decrypt it and cast it into the appropriate object.")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("copyFrom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcEncryptedValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("fromEcnryptedValue")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"saving-and-retrieving-objects"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#saving-and-retrieving-objects"}},[t._v("#")]),t._v(" Saving and Retrieving objects")]),t._v(" "),e("p",[t._v("An object with an ID can be saved and retrieved. Saving can be done using "),e("code",[t._v("EcRepository")]),t._v(". It's as easy as:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Retrieving an object using EcRepository it is a bit more complex due to issues with casting. All objects returned from EcRepository methods are of the EcRemoteLinkedData type and should be cast into their desired type before use. This can be done using the following pattern: First, get the object:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Alternatively,")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Then, it needs to be “"),e("em",[t._v("cast")]),t._v("” into the desired object.")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Person")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\np"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("copyFrom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("All properties of the object are accessible from its "),e("em",[t._v("EcRemoteLinkedData")]),t._v(" data form ‘r’, however, helper functions that exist in the object won’t be available. This is particularly useful for "),e("code",[t._v("Competency -> EcCompetency")]),t._v(", "),e("code",[t._v("Framework -> EcFramework")]),t._v(", etc.")]),t._v(" "),e("h2",{attrs:{id:"versioning"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#versioning"}},[t._v("#")]),t._v(" Versioning")]),t._v(" "),e("p",[t._v("Upon save, an object’s version number (the last segment of the "),e("code",[t._v("@id")]),t._v(") is set to "),e("em",[t._v("the current UTC timestamp in milliseconds")]),t._v(". This can be used as a last-modified indicator as well as a version number. Versions of an object other than the latest are not discoverable unless they are linked from other objects.")]),t._v(" "),e("p",[t._v("Versions of objects exist to allow for immutable referencing of an object. As an example, if a person answers a question, it is relevant that they answered a particular version of a question with a particular version of an answer.")]),t._v(" "),e("p",[t._v("To access the identifier with the version number included:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("To access the identifier that pertains to the latest version of the object:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"validating-an-object"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#validating-an-object"}},[t._v("#")]),t._v(" Validating an object")]),t._v(" "),e("p",[t._v("You may validate one or more signatures against one or more owners using the following:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("p"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("verify")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Returns whether the object is valid.")]),t._v("\n")])])]),e("h2",{attrs:{id:"controller-coming-soon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#controller-coming-soon"}},[t._v("#")]),t._v(" Controller (Coming Soon)")]),t._v(" "),e("p",[t._v("A controller is allowed to modify who can read the object, but not any other information.")]),t._v(" "),e("h2",{attrs:{id:"guidelines"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#guidelines"}},[t._v("#")]),t._v(" Guidelines")]),t._v(" "),e("p",[t._v("In building any custom implementation, we recommend the following:")]),t._v(" "),e("ul",[e("li",[t._v("Keep objects as flat as possible, and refer to other objects via their ID. This promotes data reuse.")]),t._v(" "),e("li",[t._v("All objects should be owned by the person who created the data. There should be a separate owner for each level of organizational hierarchy ("),e("em",[t._v("e.g. person, school, school district, state")]),t._v(").")]),t._v(" "),e("li",[t._v("All objects should be readable by the people to whom the data pertains. If no keys exist for that person, it is acceptable to create keys on their behalf and give them the private portion upon next interaction (or email them).")]),t._v(" "),e("li",[t._v("Any objects containing personally identifiable information should be read-restricted unless the subject of the data wishes it to be public. This not only follows privacy laws such as FERPA, but it is also a common courtesy.")]),t._v(" "),e("li",[t._v("To enable research, any non-personally identifiable information should be publicly discoverable and accessible.")])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/68.797990af.js.gz b/docs/assets/js/68.797990af.js.gz new file mode 100644 index 000000000..2eb2e57d1 Binary files /dev/null and b/docs/assets/js/68.797990af.js.gz differ diff --git a/docs/assets/js/68.adda27fd.js.gz b/docs/assets/js/68.adda27fd.js.gz deleted file mode 100644 index 2a7003572..000000000 Binary files a/docs/assets/js/68.adda27fd.js.gz and /dev/null differ diff --git a/docs/assets/js/69.e8168565.js b/docs/assets/js/69.9e842d2a.js similarity index 99% rename from docs/assets/js/69.e8168565.js rename to docs/assets/js/69.9e842d2a.js index 1ad77af7c..4539c5d5e 100644 --- a/docs/assets/js/69.e8168565.js +++ b/docs/assets/js/69.9e842d2a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{690:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"assertion"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#assertion"}},[t._v("#")]),t._v(" Assertion")]),t._v(" "),s("blockquote",[s("p",[t._v("An "),s("strong",[t._v("Assertion")]),t._v(" is a declaration by one party that another party can perform a competency at a level with some confidence, made at a point in time, limited to some timespan, and backed up by the attached evidence.")])]),t._v(" "),s("p",[t._v("Some examples are:")]),t._v(" "),s("blockquote",[s("ul",[s("li",[t._v("A test taking application asks an individual a question and they get the question right. The question is associated with a competency. The application makes an assertion that the individual can perform the competency associated with the question for one month, and attaches both the question and answer as evidence.")]),t._v(" "),s("li",[t._v("A supervisor observes a worker tig welding two pieces of metal together. The supervisor asserts that the worker is competent in TIG welding for six months, and attaches both a picture of the weld and a video of the worker welding as evidence.")]),t._v(" "),s("li",[t._v("An individual asserts that they are able to add two two-digit numbers, and attaches a picture of a piece of paper showing the work.")])])]),t._v(" "),s("p",[t._v("Assertions of competence are sensitive pieces of information, as they record the capabilities of an individual. Under law in the United States, this classifies them in certain cases as Educational Data and subjects them to privacy law. Many of the security and privacy features of CASS were developed to protect this data.")]),t._v(" "),s("p",[t._v("CASS Assertions use the following patterns to facilitate that protection:")]),t._v(" "),s("ul",[s("li",[t._v("The "),s("strong",[t._v("Agent")]),t._v(" (creator of the assertion) will own the assertion.")]),t._v(" "),s("li",[t._v("The "),s("strong",[t._v("Subject")]),t._v(" of the assertion will be able to read the assertion.")]),t._v(" "),s("li",[t._v("All "),s("em",[t._v("Personally-Identifiable Information")]),t._v(" (PII) will be read restricted to these two parties.\n"),s("ul",[s("li",[t._v("Parties may be given read permission by the subject by including the assertion in an Assertion Envelope, which provides security credentials to a third party.")])])]),t._v(" "),s("li",[t._v("All non-identifying information will be publicly accessible for use in statistics.")])]),t._v(" "),s("p",[t._v("To learn more about frameworks, competencies, and assertions, visit the "),s("RouterLink",{attrs:{to:"/guide/overview/"}},[t._v("CASS Overview")]),t._v(".")],1),t._v(" "),s("h2",{attrs:{id:"creation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("Because encryption occurs during the creation of the assertion, it is necessary to follow a strict order of operations when creating an Assertion.")])]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" agent "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" subject "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("contacts"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively, use this if you do not have any contacts in your Identity Manager")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" subject "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" agent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" a "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAssertion")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("agent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setSubject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("subject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAgent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("agent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Competency/6bcb0d3f-fa6b-4aa2-b111-92ddecb9a2a8"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setLevel")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Level/99efb8ee-e04d-44df-9a33-8da28bb889e9"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setConfidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.85")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// How confident, from 0-1, is the agent in this assertion?")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAssertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// UTC Milliseconds")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setExpirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("24")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// UTC Milliseconds, 30 days in the future.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setDecayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"t"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Decays linearly with time. Could also be t^2 or sqrt(t)")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setNegative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This is an assertion that an individual *can* do something, not that they *cannot*.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setEvidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I saw them do it."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// An array of evidence is required. Any string (URLs for instance) will do.")]),t._v("\n")])])]),s("p",[t._v("It is worthwhile to examine the object to see what fields are protected and what fields are not. The choices were made to protect the subject of the assertion, not the agent of the assertion.")]),t._v(" "),s("h2",{attrs:{id:"examining-the-security-mechanisms"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examining-the-security-mechanisms"}},[t._v("#")]),t._v(" Examining the security mechanisms")]),t._v(" "),s("p",[t._v("Similar to the Working with Objects section, we will examine the security and privacy mechanisms in place. Run each of these blocks of code independently.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" myIds "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Saving our identities elsewhere.")]),t._v("\nEcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Removing them from the expected location.")]),t._v("\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cache "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Clearing the cache.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Limited Data")]),t._v("\n\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cache "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Clearing the cache.")]),t._v("\nEcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myIds"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Restore our identities")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Full Data")]),t._v("\n")])])]),s("p",[t._v("What should be apparent is that read restricted data is not returned by the server, even if it is a field in an object, without appropriate identification.")]),t._v(" "),s("h2",{attrs:{id:"reading"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reading"}},[t._v("#")]),t._v(" Reading")]),t._v(" "),s("p",[t._v("Because decryption is a component of reading an assertion, both synchronous and asynchronous versions of each read method exist.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Synchronous Reading")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" a "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAssertion")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("copyFrom")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("level"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("confidence"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These getters automatically decrypt the data.")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgentName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Retrieves the agent’s name from EcIdentityManager, if available.")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubjectName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getNegative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAssertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getExpirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDecayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidenceCount")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("All asynchronous versions have success and failure callbacks.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Asynchronous Reading")]),t._v("\n\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgentAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("agent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These getters automatically decrypt the data.")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgentNameAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("agentName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Retrieves the agent’s name from EcIdentityManager, ifavailable.")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("subject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubjectName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("subjectName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getNegative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("negative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAssertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("assertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getExpirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("expirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDecayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("decayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidenceCount")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"save"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),s("p",[t._v("EcAssertion has a helper method that validates expected fields before saving.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"get"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),s("p",[t._v("EcAssertion has a static helper method for retrieving an assertion and casting it to the EcAssertion object.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcAssertion"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("competency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("p",[t._v("EcAssertion has a static helper method for searching for Competencies.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for competencies")]),t._v("\nEcAssertion"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAssertions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 competencies that have perfect confidence")]),t._v("\nEcAssertion"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"confidence:1.0"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAssertions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{689:function(t,s,a){"use strict";a.r(s);var n=a(69),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"assertion"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#assertion"}},[t._v("#")]),t._v(" Assertion")]),t._v(" "),s("blockquote",[s("p",[t._v("An "),s("strong",[t._v("Assertion")]),t._v(" is a declaration by one party that another party can perform a competency at a level with some confidence, made at a point in time, limited to some timespan, and backed up by the attached evidence.")])]),t._v(" "),s("p",[t._v("Some examples are:")]),t._v(" "),s("blockquote",[s("ul",[s("li",[t._v("A test taking application asks an individual a question and they get the question right. The question is associated with a competency. The application makes an assertion that the individual can perform the competency associated with the question for one month, and attaches both the question and answer as evidence.")]),t._v(" "),s("li",[t._v("A supervisor observes a worker tig welding two pieces of metal together. The supervisor asserts that the worker is competent in TIG welding for six months, and attaches both a picture of the weld and a video of the worker welding as evidence.")]),t._v(" "),s("li",[t._v("An individual asserts that they are able to add two two-digit numbers, and attaches a picture of a piece of paper showing the work.")])])]),t._v(" "),s("p",[t._v("Assertions of competence are sensitive pieces of information, as they record the capabilities of an individual. Under law in the United States, this classifies them in certain cases as Educational Data and subjects them to privacy law. Many of the security and privacy features of CASS were developed to protect this data.")]),t._v(" "),s("p",[t._v("CASS Assertions use the following patterns to facilitate that protection:")]),t._v(" "),s("ul",[s("li",[t._v("The "),s("strong",[t._v("Agent")]),t._v(" (creator of the assertion) will own the assertion.")]),t._v(" "),s("li",[t._v("The "),s("strong",[t._v("Subject")]),t._v(" of the assertion will be able to read the assertion.")]),t._v(" "),s("li",[t._v("All "),s("em",[t._v("Personally-Identifiable Information")]),t._v(" (PII) will be read restricted to these two parties.\n"),s("ul",[s("li",[t._v("Parties may be given read permission by the subject by including the assertion in an Assertion Envelope, which provides security credentials to a third party.")])])]),t._v(" "),s("li",[t._v("All non-identifying information will be publicly accessible for use in statistics.")])]),t._v(" "),s("p",[t._v("To learn more about frameworks, competencies, and assertions, visit the "),s("RouterLink",{attrs:{to:"/guide/overview/"}},[t._v("CASS Overview")]),t._v(".")],1),t._v(" "),s("h2",{attrs:{id:"creation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("Because encryption occurs during the creation of the assertion, it is necessary to follow a strict order of operations when creating an Assertion.")])]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" agent "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" subject "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("contacts"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pk"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively, use this if you do not have any contacts in your Identity Manager")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" subject "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" agent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" a "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAssertion")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("agent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setSubject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("subject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAgent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("agent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setCompetency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Competency/6bcb0d3f-fa6b-4aa2-b111-92ddecb9a2a8"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setLevel")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Level/99efb8ee-e04d-44df-9a33-8da28bb889e9"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setConfidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.85")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// How confident, from 0-1, is the agent in this assertion?")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAssertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// UTC Milliseconds")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setExpirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("24")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// UTC Milliseconds, 30 days in the future.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setDecayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"t"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Decays linearly with time. Could also be t^2 or sqrt(t)")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setNegative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This is an assertion that an individual *can* do something, not that they *cannot*.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setEvidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I saw them do it."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// An array of evidence is required. Any string (URLs for instance) will do.")]),t._v("\n")])])]),s("p",[t._v("It is worthwhile to examine the object to see what fields are protected and what fields are not. The choices were made to protect the subject of the assertion, not the agent of the assertion.")]),t._v(" "),s("h2",{attrs:{id:"examining-the-security-mechanisms"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examining-the-security-mechanisms"}},[t._v("#")]),t._v(" Examining the security mechanisms")]),t._v(" "),s("p",[t._v("Similar to the Working with Objects section, we will examine the security and privacy mechanisms in place. Run each of these blocks of code independently.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" myIds "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" EcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Saving our identities elsewhere.")]),t._v("\nEcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Removing them from the expected location.")]),t._v("\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cache "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Clearing the cache.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Limited Data")]),t._v("\n\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cache "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Clearing the cache.")]),t._v("\nEcIdentityManager"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myIds"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Restore our identities")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Full Data")]),t._v("\n")])])]),s("p",[t._v("What should be apparent is that read restricted data is not returned by the server, even if it is a field in an object, without appropriate identification.")]),t._v(" "),s("h2",{attrs:{id:"reading"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reading"}},[t._v("#")]),t._v(" Reading")]),t._v(" "),s("p",[t._v("Because decryption is a component of reading an assertion, both synchronous and asynchronous versions of each read method exist.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Synchronous Reading")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" a "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAssertion")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("copyFrom")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("level"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("confidence"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These getters automatically decrypt the data.")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgentName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Retrieves the agent’s name from EcIdentityManager, if available.")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubjectName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getNegative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAssertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getExpirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDecayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidenceCount")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("All asynchronous versions have success and failure callbacks.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Asynchronous Reading")]),t._v("\n\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgentAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("agent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These getters automatically decrypt the data.")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAgentNameAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("agentName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Retrieves the agent’s name from EcIdentityManager, ifavailable.")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("subject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSubjectName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("subjectName")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getNegative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("negative")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getAssertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("assertionDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getExpirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("expirationDate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDecayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("decayFunction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidenceCount")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\na"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getEvidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evidence")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"save"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),s("p",[t._v("EcAssertion has a helper method that validates expected fields before saving.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("a"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"get"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),s("p",[t._v("EcAssertion has a static helper method for retrieving an assertion and casting it to the EcAssertion object.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcAssertion"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("competency")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("p",[t._v("EcAssertion has a static helper method for searching for Competencies.")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for competencies")]),t._v("\nEcAssertion"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAssertions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 competencies that have perfect confidence")]),t._v("\nEcAssertion"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"confidence:1.0"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcAssertions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/69.9e842d2a.js.gz b/docs/assets/js/69.9e842d2a.js.gz new file mode 100644 index 000000000..6bd487707 Binary files /dev/null and b/docs/assets/js/69.9e842d2a.js.gz differ diff --git a/docs/assets/js/69.e8168565.js.gz b/docs/assets/js/69.e8168565.js.gz deleted file mode 100644 index 24f542acc..000000000 Binary files a/docs/assets/js/69.e8168565.js.gz and /dev/null differ diff --git a/docs/assets/js/70.f56142e8.js b/docs/assets/js/70.4235db09.js similarity index 99% rename from docs/assets/js/70.f56142e8.js rename to docs/assets/js/70.4235db09.js index d7caaa811..3e8ef9655 100644 --- a/docs/assets/js/70.f56142e8.js +++ b/docs/assets/js/70.4235db09.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{692:function(t,a,s){"use strict";s.r(a);var n=s(69),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"competency"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#competency"}},[t._v("#")]),t._v(" Competency")]),t._v(" "),a("blockquote",[a("p",[t._v("A "),a("strong",[t._v("Competency")]),t._v(" is a discrete unit of competence, and is represented in CASS as an object labelled with a name, description, and other data.")])]),t._v(" "),a("p",[t._v("Examples of competencies:")]),t._v(" "),a("blockquote",[a("ul",[a("li",[t._v("Running")]),t._v(" "),a("li",[t._v("Adding two numbers with two digits each")]),t._v(" "),a("li",[t._v("Repairing a solder joint")]),t._v(" "),a("li",[t._v("Installing a CASS Repository on a server")])])]),t._v(" "),a("p",[t._v("Competencies most commonly exist within a context such as an educational framework, a job role or title, or a knowledge domain. While it is possible to remove a well-described competency from this context, the context helps define the competency. There can be significant information lost when a competency is referenced outside of its framework.")]),t._v(" "),a("p",[t._v("To learn more about frameworks or competencies, visit the "),a("RouterLink",{attrs:{to:"/guide/overview/"}},[t._v("CASS Overview")]),t._v(".")],1),t._v(" "),a("p",[t._v("CASS Competencies are objects distinct of the frameworks in which they exist and the relations that connect them to one another. Each Competency is referred to by a URL which acts both as a unique identifier and a locator for the data that describes the competency.")]),t._v(" "),a("h2",{attrs:{id:"creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),a("p",[t._v("The CASS Libraries include a competency helper object that extends Competency with additional methods.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The ability of a creature to ambulate with such rapidity that more than half of the limbs involved do not touch the ground at some point in the motion."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-competency-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-competency-to-a-framework"}},[t._v("#")]),t._v(" Adding a Competency to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add the competency such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add this particular version of the competency")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or competency.")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-competency-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-competency-from-a-framework"}},[t._v("#")]),t._v(" Removing a Competency from a Framework")]),t._v(" "),a("p",[t._v("This method will also remove relations that involve the competency and levels that refer to the competency.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Can also use c.shortId()")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the competency.")]),t._v("\n")])])]),a("h2",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),a("p",[t._v("EcCompetency has a helper method that validates expected fields before saving.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"delete"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),a("p",[t._v("EcCompetency has a helper method that deletes the competency. This does NOT DELETE any objects that reference the competency.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),a("p",[t._v("EcCompetency has a static helper method for retrieving a Competency, automatically decrypting it, automatically encrypting it on save, and casting it to the EcCompetency object. The blocking version locks the thread while this occurs.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("EcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("competency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),a("p",[t._v("EcCompetency has a static helper method for searching for Competencies.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for competencies")]),t._v("\nEcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcCompetencies")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 competencies that have “Workforce” in the name.")]),t._v("\nEcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name:Workforce"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ElasticSearch Query string")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcCompetencies")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{690:function(t,a,s){"use strict";s.r(a);var n=s(69),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"competency"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#competency"}},[t._v("#")]),t._v(" Competency")]),t._v(" "),a("blockquote",[a("p",[t._v("A "),a("strong",[t._v("Competency")]),t._v(" is a discrete unit of competence, and is represented in CASS as an object labelled with a name, description, and other data.")])]),t._v(" "),a("p",[t._v("Examples of competencies:")]),t._v(" "),a("blockquote",[a("ul",[a("li",[t._v("Running")]),t._v(" "),a("li",[t._v("Adding two numbers with two digits each")]),t._v(" "),a("li",[t._v("Repairing a solder joint")]),t._v(" "),a("li",[t._v("Installing a CASS Repository on a server")])])]),t._v(" "),a("p",[t._v("Competencies most commonly exist within a context such as an educational framework, a job role or title, or a knowledge domain. While it is possible to remove a well-described competency from this context, the context helps define the competency. There can be significant information lost when a competency is referenced outside of its framework.")]),t._v(" "),a("p",[t._v("To learn more about frameworks or competencies, visit the "),a("RouterLink",{attrs:{to:"/guide/overview/"}},[t._v("CASS Overview")]),t._v(".")],1),t._v(" "),a("p",[t._v("CASS Competencies are objects distinct of the frameworks in which they exist and the relations that connect them to one another. Each Competency is referred to by a URL which acts both as a unique identifier and a locator for the data that describes the competency.")]),t._v(" "),a("h2",{attrs:{id:"creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),a("p",[t._v("The CASS Libraries include a competency helper object that extends Competency with additional methods.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The ability of a creature to ambulate with such rapidity that more than half of the limbs involved do not touch the ground at some point in the motion."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-competency-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-competency-to-a-framework"}},[t._v("#")]),t._v(" Adding a Competency to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add the competency such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add this particular version of the competency")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or competency.")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-competency-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-competency-from-a-framework"}},[t._v("#")]),t._v(" Removing a Competency from a Framework")]),t._v(" "),a("p",[t._v("This method will also remove relations that involve the competency and levels that refer to the competency.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Can also use c.shortId()")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the competency.")]),t._v("\n")])])]),a("h2",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),a("p",[t._v("EcCompetency has a helper method that validates expected fields before saving.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"delete"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),a("p",[t._v("EcCompetency has a helper method that deletes the competency. This does NOT DELETE any objects that reference the competency.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),a("p",[t._v("EcCompetency has a static helper method for retrieving a Competency, automatically decrypting it, automatically encrypting it on save, and casting it to the EcCompetency object. The blocking version locks the thread while this occurs.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("EcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("competency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),a("p",[t._v("EcCompetency has a static helper method for searching for Competencies.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for competencies")]),t._v("\nEcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcCompetencies")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 competencies that have “Workforce” in the name.")]),t._v("\nEcCompetency"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name:Workforce"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ElasticSearch Query string")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcCompetencies")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Success")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Failure")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/70.4235db09.js.gz b/docs/assets/js/70.4235db09.js.gz new file mode 100644 index 000000000..68269f79c Binary files /dev/null and b/docs/assets/js/70.4235db09.js.gz differ diff --git a/docs/assets/js/70.f56142e8.js.gz b/docs/assets/js/70.f56142e8.js.gz deleted file mode 100644 index 1f465afd3..000000000 Binary files a/docs/assets/js/70.f56142e8.js.gz and /dev/null differ diff --git a/docs/assets/js/71.eb9fd50f.js b/docs/assets/js/71.5a55973e.js similarity index 99% rename from docs/assets/js/71.eb9fd50f.js rename to docs/assets/js/71.5a55973e.js index 93883429f..36ea5d81e 100644 --- a/docs/assets/js/71.eb9fd50f.js +++ b/docs/assets/js/71.5a55973e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{693:function(t,a,s){"use strict";s.r(a);var n=s(69),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#framework"}},[t._v("#")]),t._v(" Framework")]),t._v(" "),a("blockquote",[a("p",[t._v("A "),a("strong",[t._v("Competency Framework")]),t._v(" is a structured collection of competencies.")])]),t._v(" "),a("p",[t._v("Examples of Competency Frameworks:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://www.onetonline.org/find/descriptor/browse/Abilities/",target:"_blank",rel:"noopener noreferrer"}},[t._v("O*NET Abilities"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asn.desire2learn.com/resources/D2695955",target:"_blank",rel:"noopener noreferrer"}},[t._v("ASN’s Competency Index for Linked Data"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Frameworks are typically found in PDFs, Word Docs, spreadsheets, and other formats, schemata, etc. To learn more about frameworks or competencies, visit the "),a("RouterLink",{attrs:{to:"/guide/overview/"}},[t._v("CASS Overview")]),t._v(".")],1),t._v(" "),a("p",[t._v("CASS can represent any competency framework as a CASS Framework.")]),t._v(" "),a("p",[t._v("A CASS Framework is a directed graph of competencies, the relations among them, and the criterion used to judge individual skill level at those competencies. It is easiest to think of a framework as containing competencies as nodes, relations as edges, and additional information in the form of levels and rollup rules.")]),t._v(" "),a("p",[t._v("Additionally, a CASS Framework does not contain objects, it merely contains references to objects. It may contain versioned references or unversioned references. By default, all operations create unversioned references which refer to the latest version.")]),t._v(" "),a("p",[t._v("You will notice that all references to competencies, relations, and other objects are represented as URLs. This allows frameworks to refer to competencies in the same repository, in a different framework, or on a different repository.")]),t._v(" "),a("p",[t._v("When processing (for instance, determining if a person holds a competency), you will use Frameworks to contextualize the process, bounding the problem to a set of competencies and relations. This is done both to make processing operate in a reasonable amount of time, and to prevent abuse by individuals who make bogus frameworks and relations.")]),t._v(" "),a("h2",{attrs:{id:"creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),a("p",[t._v("The CASS Libraries include a framework helper object that extends Framework with additional methods.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" f "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcFramework")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-competency-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-competency-to-a-framework"}},[t._v("#")]),t._v(" Adding a Competency to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add the competency such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add this particular version of the competency")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or competency!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-competency-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-competency-from-a-framework"}},[t._v("#")]),t._v(" Removing a Competency from a Framework")]),t._v(" "),a("p",[t._v("This method will also remove relations that involve the competency and levels that refer to the competency.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Can also use c.shortId()")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the competency!")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-relation-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-relation-to-a-framework"}},[t._v("#")]),t._v(" Adding a Relation to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c1 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c2 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 2"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAlignment")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Yes, I know. It’s not EcRelation. Coming soon.")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("source "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("target "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("relationType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Relation"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NARROWS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addRelation")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Don’t forget to save these objects!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-relation-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-relation-from-a-framework"}},[t._v("#")]),t._v(" Removing a Relation from a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeRelation")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save!")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-level-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-level-to-a-framework"}},[t._v("#")]),t._v(" Adding a Level to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"10 mph"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The individual can run 10 miles per hour for several seconds."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Runner"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Add the level such that it will update automatically")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Add the level such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-level-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-level-from-a-framework"}},[t._v("#")]),t._v(" Removing a Level from a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the level!")]),t._v("\n")])])]),a("h2",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),a("p",[t._v("EcFramework has a helper method that validates expected fields before saving.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"delete"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),a("p",[t._v("EcFramework has a helper method that deletes the framework. This does "),a("strong",[t._v("not delete")]),t._v(" any objects referenced by the framework.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),a("p",[t._v("EcFramework has a static helper method for retrieving a Framework, automatically decrypting it, automatically encrypting it on save, and casting it to the EcFramework object. The await version locks the thread while this occurs.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("EcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("framework")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("or")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" f "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),a("p",[t._v("EcFramework has a static helper method for searching for Frameworks.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for frameworks")]),t._v("\nEcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcFrameworks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 frameworks that have “Workforce” in the name.")]),t._v("\nEcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name:Workforce"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcFrameworks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{692:function(t,a,s){"use strict";s.r(a);var n=s(69),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#framework"}},[t._v("#")]),t._v(" Framework")]),t._v(" "),a("blockquote",[a("p",[t._v("A "),a("strong",[t._v("Competency Framework")]),t._v(" is a structured collection of competencies.")])]),t._v(" "),a("p",[t._v("Examples of Competency Frameworks:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://www.onetonline.org/find/descriptor/browse/Abilities/",target:"_blank",rel:"noopener noreferrer"}},[t._v("O*NET Abilities"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"http://asn.desire2learn.com/resources/D2695955",target:"_blank",rel:"noopener noreferrer"}},[t._v("ASN’s Competency Index for Linked Data"),a("OutboundLink")],1)])]),t._v(" "),a("p",[t._v("Frameworks are typically found in PDFs, Word Docs, spreadsheets, and other formats, schemata, etc. To learn more about frameworks or competencies, visit the "),a("RouterLink",{attrs:{to:"/guide/overview/"}},[t._v("CASS Overview")]),t._v(".")],1),t._v(" "),a("p",[t._v("CASS can represent any competency framework as a CASS Framework.")]),t._v(" "),a("p",[t._v("A CASS Framework is a directed graph of competencies, the relations among them, and the criterion used to judge individual skill level at those competencies. It is easiest to think of a framework as containing competencies as nodes, relations as edges, and additional information in the form of levels and rollup rules.")]),t._v(" "),a("p",[t._v("Additionally, a CASS Framework does not contain objects, it merely contains references to objects. It may contain versioned references or unversioned references. By default, all operations create unversioned references which refer to the latest version.")]),t._v(" "),a("p",[t._v("You will notice that all references to competencies, relations, and other objects are represented as URLs. This allows frameworks to refer to competencies in the same repository, in a different framework, or on a different repository.")]),t._v(" "),a("p",[t._v("When processing (for instance, determining if a person holds a competency), you will use Frameworks to contextualize the process, bounding the problem to a set of competencies and relations. This is done both to make processing operate in a reasonable amount of time, and to prevent abuse by individuals who make bogus frameworks and relations.")]),t._v(" "),a("h2",{attrs:{id:"creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),a("p",[t._v("The CASS Libraries include a framework helper object that extends Framework with additional methods.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" f "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcFramework")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-competency-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-competency-to-a-framework"}},[t._v("#")]),t._v(" Adding a Competency to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add the competency such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add this particular version of the competency")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or competency!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-competency-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-competency-from-a-framework"}},[t._v("#")]),t._v(" Removing a Competency from a Framework")]),t._v(" "),a("p",[t._v("This method will also remove relations that involve the competency and levels that refer to the competency.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Can also use c.shortId()")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the competency!")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-relation-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-relation-to-a-framework"}},[t._v("#")]),t._v(" Adding a Relation to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c1 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c2 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Competency 2"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" r "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcAlignment")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Yes, I know. It’s not EcRelation. Coming soon.")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("source "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("target "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("relationType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Relation"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NARROWS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addRelation")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Don’t forget to save these objects!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-relation-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-relation-from-a-framework"}},[t._v("#")]),t._v(" Removing a Relation from a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeRelation")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("r"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save!")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-level-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-level-to-a-framework"}},[t._v("#")]),t._v(" Adding a Level to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"10 mph"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The individual can run 10 miles per hour for several seconds."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Runner"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Add the level such that it will update automatically")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Add the level such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-level-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-level-from-a-framework"}},[t._v("#")]),t._v(" Removing a Level from a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the level!")]),t._v("\n")])])]),a("h2",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),a("p",[t._v("EcFramework has a helper method that validates expected fields before saving.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"delete"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),a("p",[t._v("EcFramework has a helper method that deletes the framework. This does "),a("strong",[t._v("not delete")]),t._v(" any objects referenced by the framework.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("success")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),a("p",[t._v("EcFramework has a static helper method for retrieving a Framework, automatically decrypting it, automatically encrypting it on save, and casting it to the EcFramework object. The await version locks the thread while this occurs.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("EcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("framework")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("or")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" f "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),a("p",[t._v("EcFramework has a static helper method for searching for Frameworks.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for frameworks")]),t._v("\nEcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcFrameworks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 frameworks that have “Workforce” in the name.")]),t._v("\nEcFramework"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name:Workforce"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcFrameworks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("failure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/71.5a55973e.js.gz b/docs/assets/js/71.5a55973e.js.gz new file mode 100644 index 000000000..e71366301 Binary files /dev/null and b/docs/assets/js/71.5a55973e.js.gz differ diff --git a/docs/assets/js/71.eb9fd50f.js.gz b/docs/assets/js/71.eb9fd50f.js.gz deleted file mode 100644 index 65804a6a0..000000000 Binary files a/docs/assets/js/71.eb9fd50f.js.gz and /dev/null differ diff --git a/docs/assets/js/72.0269e394.js.gz b/docs/assets/js/72.0269e394.js.gz deleted file mode 100644 index da25864cc..000000000 Binary files a/docs/assets/js/72.0269e394.js.gz and /dev/null differ diff --git a/docs/assets/js/72.0269e394.js b/docs/assets/js/72.328ecaf8.js similarity index 99% rename from docs/assets/js/72.0269e394.js rename to docs/assets/js/72.328ecaf8.js index 7a7fa74bb..451ef109f 100644 --- a/docs/assets/js/72.0269e394.js +++ b/docs/assets/js/72.328ecaf8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{691:function(t,a,s){"use strict";s.r(a);var n=s(69),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"level"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#level"}},[t._v("#")]),t._v(" Level")]),t._v(" "),a("blockquote",[a("p",[t._v("A "),a("strong",[t._v("Level")]),t._v(" is defined as a “a position on a real or imaginary scale of amount, quantity, extent, or quality.” In education, levels also have multiple meanings:")]),t._v(" "),a("ul",[a("li",[t._v("A level can represent a group of assumed knowledge, understanding, and ability to apply. For the subject area of carpentry, a beginner carpenter knows some set of skills, an intermediate carpenter knows more, and a master carpenter knows more. Because this level includes the acquisition of, and relationships to additional skills, this is typically represented by a separate competency.")]),t._v(" "),a("li",[t._v("A level can also represent a degree of performance. As the breadth of knowledge for an carpenter grows, so does their speed, quality, and understanding in a skill, knowledge, or ability. This can be thought of as a performance level, and is the type of level we typically identify in CASS.")])])]),t._v(" "),a("p",[t._v("Levels in CASS are used to make competencies measurable. Where a competency in walking may imply the ability to move, the performance levels that a shrimp and gazelle can demonstrate distinguish their capabilities greatly. Likewise, Bloom’s levels differentiate performance in skills and capability to apply knowledge.")]),t._v(" "),a("p",[t._v("Levels may be strongly coupled to the competencies that they measure, as in the speed an individual can run, but may also be generally applied, as in Bloom’s levels.")]),t._v(" "),a("h2",{attrs:{id:"creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"10 mph"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The individual can run 10 miles per hour for several seconds."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Runner"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-level-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-level-to-a-framework"}},[t._v("#")]),t._v(" Adding a Level to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"10 mph"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The individual can run 10 miles per hour for several seconds."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Runner"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add the level such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-level-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-level-from-a-framework"}},[t._v("#")]),t._v(" Removing a Level from a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the level!")]),t._v("\n")])])]),a("h2",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),a("p",[t._v("EcLevel has a helper method that validates expected fields before saving.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"delete"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),a("p",[t._v("EcLevel has a helper method that deletes the level. This does NOT DELETE any objects referenced by the level.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),a("p",[t._v("EcLevel has a static helper method for retrieving a level, automatically decrypting it, automatically encrypting it on save, and casting it to the EcLevel object. The blocking version locks the thread while this occurs.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("EcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("level")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),a("p",[t._v("EcLevel has a static helper method for searching for Frameworks.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for levels")]),t._v("\nEcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcLevels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 levels related to a competency")]),t._v("\nEcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('competency:"')]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcLevels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{694:function(t,a,s){"use strict";s.r(a);var n=s(69),e=Object(n.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"level"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#level"}},[t._v("#")]),t._v(" Level")]),t._v(" "),a("blockquote",[a("p",[t._v("A "),a("strong",[t._v("Level")]),t._v(" is defined as a “a position on a real or imaginary scale of amount, quantity, extent, or quality.” In education, levels also have multiple meanings:")]),t._v(" "),a("ul",[a("li",[t._v("A level can represent a group of assumed knowledge, understanding, and ability to apply. For the subject area of carpentry, a beginner carpenter knows some set of skills, an intermediate carpenter knows more, and a master carpenter knows more. Because this level includes the acquisition of, and relationships to additional skills, this is typically represented by a separate competency.")]),t._v(" "),a("li",[t._v("A level can also represent a degree of performance. As the breadth of knowledge for an carpenter grows, so does their speed, quality, and understanding in a skill, knowledge, or ability. This can be thought of as a performance level, and is the type of level we typically identify in CASS.")])])]),t._v(" "),a("p",[t._v("Levels in CASS are used to make competencies measurable. Where a competency in walking may imply the ability to move, the performance levels that a shrimp and gazelle can demonstrate distinguish their capabilities greatly. Likewise, Bloom’s levels differentiate performance in skills and capability to apply knowledge.")]),t._v(" "),a("p",[t._v("Levels may be strongly coupled to the competencies that they measure, as in the speed an individual can run, but may also be generally applied, as in Bloom’s levels.")]),t._v(" "),a("h2",{attrs:{id:"creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creation"}},[t._v("#")]),t._v(" Creation")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"10 mph"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The individual can run 10 miles per hour for several seconds."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Runner"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"adding-a-level-to-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-level-to-a-framework"}},[t._v("#")]),t._v(" Adding a Level to a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Running"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addOwner")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("EcIdentityManager"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("default"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ids"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ppk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toPk")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("competency "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"10 mph"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("description "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The individual can run 10 miles per hour for several seconds."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Runner"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addCompetency")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nf"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add the level such that it will update automatically")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save!")]),t._v("\n")])])]),a("h2",{attrs:{id:"removing-a-level-from-a-framework"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-a-level-from-a-framework"}},[t._v("#")]),t._v(" Removing a Level from a Framework")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("f"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeLevel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Don’t forget to save the framework and/or delete the level!")]),t._v("\n")])])]),a("h2",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" Save")]),t._v(" "),a("p",[t._v("EcLevel has a helper method that validates expected fields before saving.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"delete"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[t._v("#")]),t._v(" Delete")]),t._v(" "),a("p",[t._v("EcLevel has a helper method that deletes the level. This does NOT DELETE any objects referenced by the level.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("l"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("_delete")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" Get")]),t._v(" "),a("p",[t._v("EcLevel has a static helper method for retrieving a level, automatically decrypting it, automatically encrypting it on save, and casting it to the EcLevel object. The blocking version locks the thread while this occurs.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("EcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("level")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Alternatively...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" l "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" EcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[t._v("#")]),t._v(" Search")]),t._v(" "),a("p",[t._v("EcLevel has a static helper method for searching for Frameworks.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for levels")]),t._v("\nEcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcLevels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Searches for up to 5000 levels related to a competency")]),t._v("\nEcLevel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("search")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n repo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('competency:"')]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("c"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"')]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("arrayOfEcLevels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/72.328ecaf8.js.gz b/docs/assets/js/72.328ecaf8.js.gz new file mode 100644 index 000000000..e9417f56d Binary files /dev/null and b/docs/assets/js/72.328ecaf8.js.gz differ diff --git a/docs/assets/js/73.8b12b22e.js b/docs/assets/js/73.ffded894.js similarity index 86% rename from docs/assets/js/73.8b12b22e.js rename to docs/assets/js/73.ffded894.js index a579701e0..9c03238ae 100644 --- a/docs/assets/js/73.8b12b22e.js +++ b/docs/assets/js/73.ffded894.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{694:function(t,s,l){"use strict";l.r(s);var r=l(69),e=Object(r.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"rolluprule"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rolluprule"}},[this._v("#")]),this._v(" RollupRule")]),this._v(" "),t("p",[this._v("TODO")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{695:function(t,s,l){"use strict";l.r(s);var r=l(69),e=Object(r.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"rolluprule"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rolluprule"}},[this._v("#")]),this._v(" RollupRule")]),this._v(" "),t("p",[this._v("TODO")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/73.8b12b22e.js.gz b/docs/assets/js/73.ffded894.js.gz similarity index 81% rename from docs/assets/js/73.8b12b22e.js.gz rename to docs/assets/js/73.ffded894.js.gz index d3092c225..2c74a8d65 100644 Binary files a/docs/assets/js/73.8b12b22e.js.gz and b/docs/assets/js/73.ffded894.js.gz differ diff --git a/docs/assets/js/74.6d1a7d1f.js b/docs/assets/js/74.606b05f2.js similarity index 98% rename from docs/assets/js/74.6d1a7d1f.js rename to docs/assets/js/74.606b05f2.js index ba66b76b8..5cfb37835 100644 --- a/docs/assets/js/74.6d1a7d1f.js +++ b/docs/assets/js/74.606b05f2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{696:function(e,t,o){"use strict";o.r(t);var s=o(69),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overview"}},[e._v("#")]),e._v(" Overview")]),e._v(" "),t("p",[e._v("These pages describe the "),t("strong",[e._v("CaSS Repository")]),e._v(", an object repository used to store objects in CaSS. The CaSS repository stores objects as "),t("strong",[e._v("JSON-LD")]),e._v(" compatible with "),t("a",{attrs:{href:"https://schema.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema.org"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://credreg.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CTDL"),t("OutboundLink")],1),e._v(". The objects stored in the CaSS repository include, but are not limited to:")]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Competencies and Competency Frameworks")]),e._v(" "),t("li",[e._v("Roll-up rules (relating competence in a target competency/performance level to competence in a set of other competencies/performance levels)")]),e._v(" "),t("li",[e._v("Performance levels (which are separate objects but are tied to specific competencies)")]),e._v(" "),t("li",[e._v("Competency Assertions (stating that individuals hold competencies at particular performance levels)")]),e._v(" "),t("li",[e._v("Alignment objects that associate resources with competencies")])])]),e._v(" "),t("p",[e._v("Future versions may also include an extended set of objects that applications can use to define competency-based goals and learning paths.")]),e._v(" "),t("p",[e._v("The CaSS repository implements and supports a security and authentication framework called "),t("RouterLink",{attrs:{to:"/dev/security/kbac-specification/"}},[e._v("Key-based Access Control (KBAC)")]),e._v(". Use of this framework is optional but is recommended for implementations that require security and and that enforce privacy policies. If objects are stored with security, then the repository enforces security rules around the use of the data.")],1),e._v(" "),t("p",[e._v("Permissions are set by the creator of a piece of data")]),e._v(" "),t("ul",[t("li",[e._v("If the data is created with no owner, then it has no rights and may freely be read, modified or deleted. No security rules are enforced for these objects.")]),e._v(" "),t("li",[e._v("If the data is created with one or more owners, then only the owners may modify or delete the data. Anyone may discover or read the data. This is the typical protection level of public data such as frameworks, competencies, etc.")]),e._v(" "),t("li",[e._v("If the data is encrypted, then only the owners or readers may discover or view the data, and only owners may modify or delete the data. Assertions and other learner data use this permission level heavily.")]),e._v(" "),t("li",[e._v("A server administrator may delete any piece of data.")])]),e._v(" "),t("p",[e._v("Specifically, these pages describe the specific REST web service APIs and business logic required to enable the repository to communicate over the internet.")]),e._v(" "),t("h2",{attrs:{id:"how-to-read-this-document"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-to-read-this-document"}},[e._v("#")]),e._v(" How to Read this Document")]),e._v(" "),t("p",[e._v("This document describes the existing CaSS Repository as a series of use cases or recipes and assumes understanding of KBAC, HTTP, JSON, JSON-LD, RSA Cryptography, and any other associated technologies. The steps and associated examples should be used when attempting to accomplish specific coding tasks.")]),e._v(" "),t("h2",{attrs:{id:"definitions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#definitions"}},[e._v("#")]),e._v(" Definitions")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Object:")]),e._v(" A JSON-LD Object")]),e._v(" "),t("li",[t("strong",[e._v("Repository:")]),e._v(" The CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("Endpoint:")]),e._v(" The domain name and additional URL path (if exists) to reach the CaSS Repository")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{698:function(e,t,o){"use strict";o.r(t);var s=o(69),a=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overview"}},[e._v("#")]),e._v(" Overview")]),e._v(" "),t("p",[e._v("These pages describe the "),t("strong",[e._v("CaSS Repository")]),e._v(", an object repository used to store objects in CaSS. The CaSS repository stores objects as "),t("strong",[e._v("JSON-LD")]),e._v(" compatible with "),t("a",{attrs:{href:"https://schema.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema.org"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://credreg.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CTDL"),t("OutboundLink")],1),e._v(". The objects stored in the CaSS repository include, but are not limited to:")]),e._v(" "),t("blockquote",[t("ul",[t("li",[e._v("Competencies and Competency Frameworks")]),e._v(" "),t("li",[e._v("Roll-up rules (relating competence in a target competency/performance level to competence in a set of other competencies/performance levels)")]),e._v(" "),t("li",[e._v("Performance levels (which are separate objects but are tied to specific competencies)")]),e._v(" "),t("li",[e._v("Competency Assertions (stating that individuals hold competencies at particular performance levels)")]),e._v(" "),t("li",[e._v("Alignment objects that associate resources with competencies")])])]),e._v(" "),t("p",[e._v("Future versions may also include an extended set of objects that applications can use to define competency-based goals and learning paths.")]),e._v(" "),t("p",[e._v("The CaSS repository implements and supports a security and authentication framework called "),t("RouterLink",{attrs:{to:"/dev/security/kbac-specification/"}},[e._v("Key-based Access Control (KBAC)")]),e._v(". Use of this framework is optional but is recommended for implementations that require security and and that enforce privacy policies. If objects are stored with security, then the repository enforces security rules around the use of the data.")],1),e._v(" "),t("p",[e._v("Permissions are set by the creator of a piece of data")]),e._v(" "),t("ul",[t("li",[e._v("If the data is created with no owner, then it has no rights and may freely be read, modified or deleted. No security rules are enforced for these objects.")]),e._v(" "),t("li",[e._v("If the data is created with one or more owners, then only the owners may modify or delete the data. Anyone may discover or read the data. This is the typical protection level of public data such as frameworks, competencies, etc.")]),e._v(" "),t("li",[e._v("If the data is encrypted, then only the owners or readers may discover or view the data, and only owners may modify or delete the data. Assertions and other learner data use this permission level heavily.")]),e._v(" "),t("li",[e._v("A server administrator may delete any piece of data.")])]),e._v(" "),t("p",[e._v("Specifically, these pages describe the specific REST web service APIs and business logic required to enable the repository to communicate over the internet.")]),e._v(" "),t("h2",{attrs:{id:"how-to-read-this-document"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-to-read-this-document"}},[e._v("#")]),e._v(" How to Read this Document")]),e._v(" "),t("p",[e._v("This document describes the existing CaSS Repository as a series of use cases or recipes and assumes understanding of KBAC, HTTP, JSON, JSON-LD, RSA Cryptography, and any other associated technologies. The steps and associated examples should be used when attempting to accomplish specific coding tasks.")]),e._v(" "),t("h2",{attrs:{id:"definitions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#definitions"}},[e._v("#")]),e._v(" Definitions")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Object:")]),e._v(" A JSON-LD Object")]),e._v(" "),t("li",[t("strong",[e._v("Repository:")]),e._v(" The CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("Endpoint:")]),e._v(" The domain name and additional URL path (if exists) to reach the CaSS Repository")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/74.606b05f2.js.gz b/docs/assets/js/74.606b05f2.js.gz new file mode 100644 index 000000000..eb2dee346 Binary files /dev/null and b/docs/assets/js/74.606b05f2.js.gz differ diff --git a/docs/assets/js/74.6d1a7d1f.js.gz b/docs/assets/js/74.6d1a7d1f.js.gz deleted file mode 100644 index 794888d9c..000000000 Binary files a/docs/assets/js/74.6d1a7d1f.js.gz and /dev/null differ diff --git a/docs/assets/js/75.7a53fe46.js b/docs/assets/js/75.a205d544.js similarity index 99% rename from docs/assets/js/75.7a53fe46.js rename to docs/assets/js/75.a205d544.js index 1f3dd49a6..641bd7489 100644 --- a/docs/assets/js/75.7a53fe46.js +++ b/docs/assets/js/75.a205d544.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{697:function(t,s,a){"use strict";a.r(s);var e=a(69),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"create"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#create"}},[t._v("#")]),t._v(" Create")]),t._v(" "),s("p",[s("em",[t._v("aka '"),s("strong",[t._v("PUT")]),t._v("'")])]),t._v(" "),s("p",[t._v("To store an object in a CaSS Repository:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("ol",[s("li",[s("p",[t._v("Sign the object")]),t._v(" "),s("ul",[s("li",[t._v("Create a copy of the object.")]),t._v(" "),s("li",[t._v("Remove "),s("code",[t._v("@signature")]),t._v(", "),s("code",[t._v("@owner")]),t._v(", "),s("code",[t._v("@reader")]),t._v(", and "),s("code",[t._v("@id")]),t._v(" keys (and values) from the object.")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("ul",[s("li",[t._v("Serialize the copy of the object in JSON format with the keys sorted in ASCII order and with no whitespace.")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("ul",[s("li",[t._v("Sign the serialized copy of the object using a SHA1 digest of the serialized data and RSA-2048 bit encryption with the user’s private key.")])]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("6>/Ê€o\")_Ì\nÖà±òj”´¼¬ùò<È(_ꪫÙTr³ßãÖxpbÚŽW #’ü¡ Ö8uµÔ×_pÀ:èûŸÛu38n·I8ùwo‹>^#ü Y”ÍS7ÇÍ=˜—ýÛ˜ñù:¹qûÎEÍRªõ1qkĹù^Äö-àːG9lj>ÿDr^“båØŠd3ç´ð¡›Ïžõ”7CÀ÷U3~+µ<ÏÃAÒ2Ï8س;¾XÁ‚‘\n¼­ç®Úwxá2T_.ÌðoÇ°'vè)#‘w…ŠíVŒÅ¾€â uü±¡‚2ì\n(...or something like that)\n")])])]),s("ul",[s("li",[t._v("Encode the signature using Base64.")])]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("Nj4vGMqAbyIpX4HMC9bgsfJqlLS8rPnyPMgoX+qqEKvZVHKz3+PWeHBi2o5XCSOS/KEgEtYFOHW11BbXXwZwwDro+5/bdTM4brdJOPl3B2+LPl4jDhj8IFmUzVM3x809mJf925gM8fk6uXH7zkXNUqr1MXFrxBy5+V7E9i0B4MuQFhpHOceJPv8YRHJeHZNi5dgZimQz57TwoZvPnvWUgRA3Q8D3VTN+K7U8z8NB0hkyzzjYPGunqJfEZh0pc5noftO/nBOV0zHiVT6zO75YwYKRBwq8reeu2nd44TJUXy7MD/Bvx7AndugpI5F3hYrtVowGxb6A4iB1/LGhggEy7A==\n")])])]),s("ul",[s("li",[t._v("Store the signature in the original object’s "),s("code",[t._v("@signature")]),t._v(" array (create it if it does not exist).")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Nj4vGMq...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])]),t._v(" "),s("li",[s("p",[t._v("Add the owner to the object")]),t._v(" "),s("ul",[s("li",[t._v("Encode the owner’s public key (used to sign the object) in PEM format.\n"),s("ul",[s("li",[t._v("Specifically: X.509 SubjectPublicKeyInfo/OpenSSL PEM public key")]),t._v(" "),s("li",[t._v("This will begin with "),s("code",[t._v("-----BEGIN PUBLIC KEY-----")])])])]),t._v(" "),s("li",[t._v("Remove whitespace from the PEM encoded public key.")]),t._v(" "),s("li",[t._v("Add the owner to the object’s "),s("code",[t._v("@owner")]),t._v(" array.\n"),s("ul",[s("li",[t._v("Create the array if it does not exist.")])])])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBI...-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Nj4vGMq...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])]),t._v(" "),s("li",[s("p",[t._v("To store the object, construct a url to "),s("code",[t._v("http(s)://///")])]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("Endpoint:")]),t._v(" Endpoint of the CaSS Repository")]),t._v(" "),s("li",[s("strong",[t._v("Type:")]),t._v(" Type of the object in semi-reversed notation")]),t._v(" "),s("li",[s("strong",[t._v("Id:")]),t._v(" Identifier of the object. Randomly generate it if it does not exist.\n"),s("ul",[s("li",[t._v("This identifier may differ from the value stored in the object’s "),s("code",[t._v("@id")]),t._v(" field. This is used when registering data stored on another server.")]),t._v(" "),s("li",[t._v("For registering data retrieved from another server, a typical identifier for storage in CaSS is the MD5 hash of the "),s("code",[t._v("@id")]),t._v(" field.")])])]),t._v(" "),s("li",[s("strong",[t._v("Version:")]),t._v(" Numerical indicator of the version, typically a last modified time in unix format.")])])]),t._v(" "),s("li",[s("p",[t._v("Assign the object’s "),s("code",[t._v("@id")]),t._v(" to the url.")]),t._v(" "),s("ul",[s("li",[t._v("Update any version indicators to the last modified date, if necessary.")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/007c67a2-c3a1-4b38-b222-a47e3c6cef39/1461770282857"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBI...-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Nj4vGMq...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])]),t._v(" "),s("li",[s("p",[t._v("Add the signed, owned object to the "),s("code",[t._v("data")]),t._v(" part of a multi-part POST package.")])]),t._v(" "),s("li",[s("p",[t._v("Create a signature.")]),t._v(" "),s("ul",[s("li",[t._v("Create an empty JSON object.")]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@context")]),t._v(" to "),s("code",[t._v("http://schema.eduworks.com/ebac/0.2/")])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@type")]),t._v(" to "),s("code",[t._v("http://schema.eduworks.com/ebac/0.2/timeLimitedSignature")])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("expiry")]),t._v(" to current unix time + time in milliseconds to allow the transaction to complete.\n"),s("ul",[s("li",[t._v("5 seconds should suffice")])])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("server")]),t._v(" to "),s("code",[t._v("http(s)://")])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@signature")]),t._v(" to:\n"),s("ul",[s("li",[t._v("Serialize the copy of the object in JSON format with the keys sorted in ASCII order and with no whitespace.")]),t._v(" "),s("li",[t._v("Sign the serialized copy of the object using a SHA1 digest and RSA-2048 bit encryption with the user’s private key.")]),t._v(" "),s("li",[t._v("Encode the signature using Base64.")]),t._v(" "),s("li",[t._v("Store the signature in the original object’s "),s("code",[t._v("@signature")]),t._v(" array.\n"),s("ul",[s("li",[t._v("Create the array if it does not exist.")])])])])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@owner")]),t._v(" to the PEM of the user.\n"),s("ul",[s("li",[t._v("Specifically: X.509 SubjectPublicKeyInfo/OpenSSL PEM public key")])])])])]),t._v(" "),s("li",[s("p",[t._v("Add the signature to an array, and set the “signatureSheet” part of the multi-part POST package to the array.")])])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBI...QAB-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/ebac/0.1/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"eQOJt9...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expiry"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1463525567195")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"server"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://sandbox.service.cassproject.org"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("ol",{attrs:{start:"8"}},[s("li",[t._v("POST the signatureSheet and data multi part mime files to the location in "),s("code",[t._v("@id")]),t._v(".")])]),t._v(" "),s("div",{staticClass:"language-http extra-class"},[s("pre",{pre:!0,attrs:{class:"language-http"}},[s("code",[s("span",{pre:!0,attrs:{class:"token request-line"}},[s("span",{pre:!0,attrs:{class:"token method property"}},[t._v("POST")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token request-target url"}},[t._v("/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token http-version property"}},[t._v("HTTP/1.1")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Host")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("sandbox.service.cassproject.org")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Connection")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("keep-alive")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Length")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("2485")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Accept")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("*/*")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Origin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("https://sandbox.cassproject.org")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("User-Agent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("multipart/form-data; boundary=----WebKitFormBoundaryHPC2mTo2nsUWwL7V")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Referer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("https://sandbox.cassproject.org/cass.example/framework.html")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Accept-Encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("gzip, deflate")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Accept-Language")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("en-US,en;q=0.8")])]),t._v("\n\n------WebKitFormBoundaryHPC2mTo2nsUWwL7V\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Disposition")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v('form-data; name="data"')])]),t._v('\n\n{"@id":"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979","@owner":["-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhFIqjxOuV2UsVqqmknsjdSX5UOdjsCMHjXCRQ/CN+6W3p403AjewJiwacNyyosSWzzDc0w60GMMMY6ubSm0/hITlEgFmiA2g/26nCrHuSSMzoRIiql3apGnzxJsPkbHnn/uKXKlsWONMM4GYijQRNeXrFv+xNsl/Qzxdo4ND3FeTKXdWEu8JJXfKRXDo34RJYt/aSIUby0HYFVp/gUxXSBfYXU4rFLlSd4YwBfqNSiyEjCQUuXqko8FndAUbciMOxY+ko9IVM8R+k4gRlBhh5TR2a8B6o8ir38CGBvBkQZ635Nw/Ds+L6g5NbvUJofRC9gvfN5PD9Gr7GrQX//60eQIDAQAB-----END PUBLIC KEY-----"],"@context":"http://schema.eduworks.com/cass/0.1","@signature":["Uf/gevysprqTSsKUu5Oy/g+Ua6cSpkuZ3GDnUvq2PKBa4ucOR06XTq9GPBG21Q6AiNtqFPk+l635OpwkH3MlSR6jFJxGn+UYgC4XoKHSxkBaPX7Bzk1bVgE5EerI8MsVSfp6NmDkKKesoBcdnZa+JrZllfknZte4z2Zuu7OrEUZwI9L7b7mXfZJ62Isp4YIQI/cbhRnGHqN6noCZHXkdXwD3L1bNU7knLm6bM2+FOTVV9AO2y0IEAR3RKnWtF0tODBRbmkjGih2Ec68C1ZplIg2GmSz6iWZDqfk3/ZEvcGRkgEP7GhFk7wUw7oEuIOOecdWZI0uF/y04kN9435fSJg=="],"@type":"http://schema.eduworks.com/cass/0.1/framework","description":"This is an example of POSTing a new object.","name":"New Framework"}\n------WebKitFormBoundaryHPC2mTo2nsUWwL7V\n'),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Disposition")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v('form-data; name="signatureSheet"')])]),t._v('\n\n[{"@owner":"-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhFIqjxOuV2UsVqqmknsjdSX5UOdjsCMHjXCRQ/CN+6W3p403AjewJiwacNyyosSWzzDc0w60GMMMY6ubSm0/hITlEgFmiA2g/26nCrHuSSMzoRIiql3apGnzxJsPkbHnn/uKXKlsWONMM4GYijQRNeXrFv+xNsl/Qzxdo4ND3FeTKXdWEu8JJXfKRXDo34RJYt/aSIUby0HYFVp/gUxXSBfYXU4rFLlSd4YwBfqNSiyEjCQUuXqko8FndAUbciMOxY+ko9IVM8R+k4gRlBhh5TR2a8B6o8ir38CGBvBkQZ635Nw/Ds+L6g5NbvUJofRC9gvfN5PD9Gr7GrQX//60eQIDAQAB-----END PUBLIC KEY-----","@context":"http://schema.eduworks.com/ebac/0.1/","@signature":"OPdnoFJNpAdJ2tovbA57WSXlL7/jwXFBywkwaNW8fZa+cgGMC2f7GuBVYExbWyd2HIBEYDQT8vj1EevdhE3axA6gFamzei27kjfiVoJt83t17V0tihLP8zk4ajHS04Y8lf2/tn5KHnwuJOGdcXrMdyT0CRpEHkF7raiA0aQbNPK9XG5hwphIlyszFlnpGX1UEYhDJ3+4qAk/F1gTJGaAm4oqh1wpz/cYq7WcSA921u4u76squrENa3u0+f7u0P0hD1bwN+/kGeAe/vZdSn41nziVp9kwv1g2tZDTdbIlKjX6OqHl/+tHBUeEJRL+N1/tRgUfyoKF2LMqTl+TkQSvUw==","@type":"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature","expiry":1463528464980,"server":"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979"}]\n------WebKitFormBoundaryHPC2mTo2nsUWwL7V--\n\n'),s("span",{pre:!0,attrs:{class:"token response-status"}},[s("span",{pre:!0,attrs:{class:"token http-version property"}},[t._v("HTTP/1.1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token status-code number"}},[t._v("200")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token reason-phrase string"}},[t._v("OK")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Date")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Tue, 17 May 2016 23:40:16 GMT")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Server")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Apache-Coyote/1.1")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Access-Control-Allow-Origin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("*")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Access-Control-Allow-Methods")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("GET, PUT, POST, DELETE, OPTIONS")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Access-Control-Allow-Headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("If-Modified-Since, Content-Type, Content-Range, Content-Disposition, Content-Description, signatureSheet")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("cache-control")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("private, no-cache, no-store")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("application/json")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Keep-Alive")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("timeout=5, max=100")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Connection")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Keep-Alive")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Transfer-Encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("chunked")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token application-json"}},[t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhFIqjxOuV2UsVqqmknsjdSX5UOdjsCMHjXCRQ/CN+6W3p403AjewJiwacNyyosSWzzDc0w60GMMMY6ubSm0/hITlEgFmiA2g/26nCrHuSSMzoRIiql3apGnzxJsPkbHnn/uKXKlsWONMM4GYijQRNeXrFv+xNsl/Qzxdo4ND3FeTKXdWEu8JJXfKRXDo34RJYt/aSIUby0HYFVp/gUxXSBfYXU4rFLlSd4YwBfqNSiyEjCQUuXqko8FndAUbciMOxY+ko9IVM8R+k4gRlBhh5TR2a8B6o8ir38CGBvBkQZ635Nw/Ds+L6g5NbvUJofRC9gvfN5PD9Gr7GrQX//60eQIDAQAB-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Uf/gevysprqTSsKUu5Oy/g+Ua6cSpkuZ3GDnUvq2PKBa4ucOR06XTq9GPBG21Q6AiNtqFPk+l635OpwkH3MlSR6jFJxGn+UYgC4XoKHSxkBaPX7Bzk1bVgE5EerI8MsVSfp6NmDkKKesoBcdnZa+JrZllfknZte4z2Zuu7OrEUZwI9L7b7mXfZJ62Isp4YIQI/cbhRnGHqN6noCZHXkdXwD3L1bNU7knLm6bM2+FOTVV9AO2y0IEAR3RKnWtF0tODBRbmkjGih2Ec68C1ZplIg2GmSz6iWZDqfk3/ZEvcGRkgEP7GhFk7wUw7oEuIOOecdWZI0uF/y04kN9435fSJg=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"This is an example of POSTing a new object."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"New Framework"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{696:function(t,s,a){"use strict";a.r(s);var e=a(69),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"create"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#create"}},[t._v("#")]),t._v(" Create")]),t._v(" "),s("p",[s("em",[t._v("aka '"),s("strong",[t._v("PUT")]),t._v("'")])]),t._v(" "),s("p",[t._v("To store an object in a CaSS Repository:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("ol",[s("li",[s("p",[t._v("Sign the object")]),t._v(" "),s("ul",[s("li",[t._v("Create a copy of the object.")]),t._v(" "),s("li",[t._v("Remove "),s("code",[t._v("@signature")]),t._v(", "),s("code",[t._v("@owner")]),t._v(", "),s("code",[t._v("@reader")]),t._v(", and "),s("code",[t._v("@id")]),t._v(" keys (and values) from the object.")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("ul",[s("li",[t._v("Serialize the copy of the object in JSON format with the keys sorted in ASCII order and with no whitespace.")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("ul",[s("li",[t._v("Sign the serialized copy of the object using a SHA1 digest of the serialized data and RSA-2048 bit encryption with the user’s private key.")])]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("6>/Ê€o\")_Ì\nÖà±òj”´¼¬ùò<È(_ꪫÙTr³ßãÖxpbÚŽW #’ü¡ Ö8uµÔ×_pÀ:èûŸÛu38n·I8ùwo‹>^#ü Y”ÍS7ÇÍ=˜—ýÛ˜ñù:¹qûÎEÍRªõ1qkĹù^Äö-àːG9lj>ÿDr^“båØŠd3ç´ð¡›Ïžõ”7CÀ÷U3~+µ<ÏÃAÒ2Ï8س;¾XÁ‚‘\n¼­ç®Úwxá2T_.ÌðoÇ°'vè)#‘w…ŠíVŒÅ¾€â uü±¡‚2ì\n(...or something like that)\n")])])]),s("ul",[s("li",[t._v("Encode the signature using Base64.")])]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("Nj4vGMqAbyIpX4HMC9bgsfJqlLS8rPnyPMgoX+qqEKvZVHKz3+PWeHBi2o5XCSOS/KEgEtYFOHW11BbXXwZwwDro+5/bdTM4brdJOPl3B2+LPl4jDhj8IFmUzVM3x809mJf925gM8fk6uXH7zkXNUqr1MXFrxBy5+V7E9i0B4MuQFhpHOceJPv8YRHJeHZNi5dgZimQz57TwoZvPnvWUgRA3Q8D3VTN+K7U8z8NB0hkyzzjYPGunqJfEZh0pc5noftO/nBOV0zHiVT6zO75YwYKRBwq8reeu2nd44TJUXy7MD/Bvx7AndugpI5F3hYrtVowGxb6A4iB1/LGhggEy7A==\n")])])]),s("ul",[s("li",[t._v("Store the signature in the original object’s "),s("code",[t._v("@signature")]),t._v(" array (create it if it does not exist).")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Nj4vGMq...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])]),t._v(" "),s("li",[s("p",[t._v("Add the owner to the object")]),t._v(" "),s("ul",[s("li",[t._v("Encode the owner’s public key (used to sign the object) in PEM format.\n"),s("ul",[s("li",[t._v("Specifically: X.509 SubjectPublicKeyInfo/OpenSSL PEM public key")]),t._v(" "),s("li",[t._v("This will begin with "),s("code",[t._v("-----BEGIN PUBLIC KEY-----")])])])]),t._v(" "),s("li",[t._v("Remove whitespace from the PEM encoded public key.")]),t._v(" "),s("li",[t._v("Add the owner to the object’s "),s("code",[t._v("@owner")]),t._v(" array.\n"),s("ul",[s("li",[t._v("Create the array if it does not exist.")])])])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBI...-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Nj4vGMq...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])]),t._v(" "),s("li",[s("p",[t._v("To store the object, construct a url to "),s("code",[t._v("http(s)://///")])]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("Endpoint:")]),t._v(" Endpoint of the CaSS Repository")]),t._v(" "),s("li",[s("strong",[t._v("Type:")]),t._v(" Type of the object in semi-reversed notation")]),t._v(" "),s("li",[s("strong",[t._v("Id:")]),t._v(" Identifier of the object. Randomly generate it if it does not exist.\n"),s("ul",[s("li",[t._v("This identifier may differ from the value stored in the object’s "),s("code",[t._v("@id")]),t._v(" field. This is used when registering data stored on another server.")]),t._v(" "),s("li",[t._v("For registering data retrieved from another server, a typical identifier for storage in CaSS is the MD5 hash of the "),s("code",[t._v("@id")]),t._v(" field.")])])]),t._v(" "),s("li",[s("strong",[t._v("Version:")]),t._v(" Numerical indicator of the version, typically a last modified time in unix format.")])])]),t._v(" "),s("li",[s("p",[t._v("Assign the object’s "),s("code",[t._v("@id")]),t._v(" to the url.")]),t._v(" "),s("ul",[s("li",[t._v("Update any version indicators to the last modified date, if necessary.")])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/007c67a2-c3a1-4b38-b222-a47e3c6cef39/1461770282857"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBI...-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Nj4vGMq...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I changed this value."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SoarTech Test"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])]),t._v(" "),s("li",[s("p",[t._v("Add the signed, owned object to the "),s("code",[t._v("data")]),t._v(" part of a multi-part POST package.")])]),t._v(" "),s("li",[s("p",[t._v("Create a signature.")]),t._v(" "),s("ul",[s("li",[t._v("Create an empty JSON object.")]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@context")]),t._v(" to "),s("code",[t._v("http://schema.eduworks.com/ebac/0.2/")])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@type")]),t._v(" to "),s("code",[t._v("http://schema.eduworks.com/ebac/0.2/timeLimitedSignature")])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("expiry")]),t._v(" to current unix time + time in milliseconds to allow the transaction to complete.\n"),s("ul",[s("li",[t._v("5 seconds should suffice")])])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("server")]),t._v(" to "),s("code",[t._v("http(s)://")])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@signature")]),t._v(" to:\n"),s("ul",[s("li",[t._v("Serialize the copy of the object in JSON format with the keys sorted in ASCII order and with no whitespace.")]),t._v(" "),s("li",[t._v("Sign the serialized copy of the object using a SHA1 digest and RSA-2048 bit encryption with the user’s private key.")]),t._v(" "),s("li",[t._v("Encode the signature using Base64.")]),t._v(" "),s("li",[t._v("Store the signature in the original object’s "),s("code",[t._v("@signature")]),t._v(" array.\n"),s("ul",[s("li",[t._v("Create the array if it does not exist.")])])])])]),t._v(" "),s("li",[t._v("Set "),s("code",[t._v("@owner")]),t._v(" to the PEM of the user.\n"),s("ul",[s("li",[t._v("Specifically: X.509 SubjectPublicKeyInfo/OpenSSL PEM public key")])])])])]),t._v(" "),s("li",[s("p",[t._v("Add the signature to an array, and set the “signatureSheet” part of the multi-part POST package to the array.")])])]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBI...QAB-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/ebac/0.1/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"eQOJt9...=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expiry"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1463525567195")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"server"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://sandbox.service.cassproject.org"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("ol",{attrs:{start:"8"}},[s("li",[t._v("POST the signatureSheet and data multi part mime files to the location in "),s("code",[t._v("@id")]),t._v(".")])]),t._v(" "),s("div",{staticClass:"language-http extra-class"},[s("pre",{pre:!0,attrs:{class:"language-http"}},[s("code",[s("span",{pre:!0,attrs:{class:"token request-line"}},[s("span",{pre:!0,attrs:{class:"token method property"}},[t._v("POST")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token request-target url"}},[t._v("/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token http-version property"}},[t._v("HTTP/1.1")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Host")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("sandbox.service.cassproject.org")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Connection")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("keep-alive")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Length")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("2485")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Accept")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("*/*")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Origin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("https://sandbox.cassproject.org")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("User-Agent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("multipart/form-data; boundary=----WebKitFormBoundaryHPC2mTo2nsUWwL7V")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Referer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("https://sandbox.cassproject.org/cass.example/framework.html")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Accept-Encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("gzip, deflate")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Accept-Language")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("en-US,en;q=0.8")])]),t._v("\n\n------WebKitFormBoundaryHPC2mTo2nsUWwL7V\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Disposition")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v('form-data; name="data"')])]),t._v('\n\n{"@id":"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979","@owner":["-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhFIqjxOuV2UsVqqmknsjdSX5UOdjsCMHjXCRQ/CN+6W3p403AjewJiwacNyyosSWzzDc0w60GMMMY6ubSm0/hITlEgFmiA2g/26nCrHuSSMzoRIiql3apGnzxJsPkbHnn/uKXKlsWONMM4GYijQRNeXrFv+xNsl/Qzxdo4ND3FeTKXdWEu8JJXfKRXDo34RJYt/aSIUby0HYFVp/gUxXSBfYXU4rFLlSd4YwBfqNSiyEjCQUuXqko8FndAUbciMOxY+ko9IVM8R+k4gRlBhh5TR2a8B6o8ir38CGBvBkQZ635Nw/Ds+L6g5NbvUJofRC9gvfN5PD9Gr7GrQX//60eQIDAQAB-----END PUBLIC KEY-----"],"@context":"http://schema.eduworks.com/cass/0.1","@signature":["Uf/gevysprqTSsKUu5Oy/g+Ua6cSpkuZ3GDnUvq2PKBa4ucOR06XTq9GPBG21Q6AiNtqFPk+l635OpwkH3MlSR6jFJxGn+UYgC4XoKHSxkBaPX7Bzk1bVgE5EerI8MsVSfp6NmDkKKesoBcdnZa+JrZllfknZte4z2Zuu7OrEUZwI9L7b7mXfZJ62Isp4YIQI/cbhRnGHqN6noCZHXkdXwD3L1bNU7knLm6bM2+FOTVV9AO2y0IEAR3RKnWtF0tODBRbmkjGih2Ec68C1ZplIg2GmSz6iWZDqfk3/ZEvcGRkgEP7GhFk7wUw7oEuIOOecdWZI0uF/y04kN9435fSJg=="],"@type":"http://schema.eduworks.com/cass/0.1/framework","description":"This is an example of POSTing a new object.","name":"New Framework"}\n------WebKitFormBoundaryHPC2mTo2nsUWwL7V\n'),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Disposition")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v('form-data; name="signatureSheet"')])]),t._v('\n\n[{"@owner":"-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhFIqjxOuV2UsVqqmknsjdSX5UOdjsCMHjXCRQ/CN+6W3p403AjewJiwacNyyosSWzzDc0w60GMMMY6ubSm0/hITlEgFmiA2g/26nCrHuSSMzoRIiql3apGnzxJsPkbHnn/uKXKlsWONMM4GYijQRNeXrFv+xNsl/Qzxdo4ND3FeTKXdWEu8JJXfKRXDo34RJYt/aSIUby0HYFVp/gUxXSBfYXU4rFLlSd4YwBfqNSiyEjCQUuXqko8FndAUbciMOxY+ko9IVM8R+k4gRlBhh5TR2a8B6o8ir38CGBvBkQZ635Nw/Ds+L6g5NbvUJofRC9gvfN5PD9Gr7GrQX//60eQIDAQAB-----END PUBLIC KEY-----","@context":"http://schema.eduworks.com/ebac/0.1/","@signature":"OPdnoFJNpAdJ2tovbA57WSXlL7/jwXFBywkwaNW8fZa+cgGMC2f7GuBVYExbWyd2HIBEYDQT8vj1EevdhE3axA6gFamzei27kjfiVoJt83t17V0tihLP8zk4ajHS04Y8lf2/tn5KHnwuJOGdcXrMdyT0CRpEHkF7raiA0aQbNPK9XG5hwphIlyszFlnpGX1UEYhDJ3+4qAk/F1gTJGaAm4oqh1wpz/cYq7WcSA921u4u76squrENa3u0+f7u0P0hD1bwN+/kGeAe/vZdSn41nziVp9kwv1g2tZDTdbIlKjX6OqHl/+tHBUeEJRL+N1/tRgUfyoKF2LMqTl+TkQSvUw==","@type":"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature","expiry":1463528464980,"server":"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979"}]\n------WebKitFormBoundaryHPC2mTo2nsUWwL7V--\n\n'),s("span",{pre:!0,attrs:{class:"token response-status"}},[s("span",{pre:!0,attrs:{class:"token http-version property"}},[t._v("HTTP/1.1")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token status-code number"}},[t._v("200")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token reason-phrase string"}},[t._v("OK")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Date")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Tue, 17 May 2016 23:40:16 GMT")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Server")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Apache-Coyote/1.1")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Access-Control-Allow-Origin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("*")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Access-Control-Allow-Methods")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("GET, PUT, POST, DELETE, OPTIONS")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Access-Control-Allow-Headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("If-Modified-Since, Content-Type, Content-Range, Content-Disposition, Content-Description, signatureSheet")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("cache-control")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("private, no-cache, no-store")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Content-Type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("application/json")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Keep-Alive")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("timeout=5, max=100")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Connection")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("Keep-Alive")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token header"}},[s("span",{pre:!0,attrs:{class:"token header-name keyword"}},[t._v("Transfer-Encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token header-value"}},[t._v("chunked")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token application-json"}},[t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/a930b85b-7850-403e-9e05-2b23494236c4/1463528404979"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@owner"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhFIqjxOuV2UsVqqmknsjdSX5UOdjsCMHjXCRQ/CN+6W3p403AjewJiwacNyyosSWzzDc0w60GMMMY6ubSm0/hITlEgFmiA2g/26nCrHuSSMzoRIiql3apGnzxJsPkbHnn/uKXKlsWONMM4GYijQRNeXrFv+xNsl/Qzxdo4ND3FeTKXdWEu8JJXfKRXDo34RJYt/aSIUby0HYFVp/gUxXSBfYXU4rFLlSd4YwBfqNSiyEjCQUuXqko8FndAUbciMOxY+ko9IVM8R+k4gRlBhh5TR2a8B6o8ir38CGBvBkQZ635Nw/Ds+L6g5NbvUJofRC9gvfN5PD9Gr7GrQX//60eQIDAQAB-----END PUBLIC KEY-----"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@signature"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Uf/gevysprqTSsKUu5Oy/g+Ua6cSpkuZ3GDnUvq2PKBa4ucOR06XTq9GPBG21Q6AiNtqFPk+l635OpwkH3MlSR6jFJxGn+UYgC4XoKHSxkBaPX7Bzk1bVgE5EerI8MsVSfp6NmDkKKesoBcdnZa+JrZllfknZte4z2Zuu7OrEUZwI9L7b7mXfZJ62Isp4YIQI/cbhRnGHqN6noCZHXkdXwD3L1bNU7knLm6bM2+FOTVV9AO2y0IEAR3RKnWtF0tODBRbmkjGih2Ec68C1ZplIg2GmSz6iWZDqfk3/ZEvcGRkgEP7GhFk7wUw7oEuIOOecdWZI0uF/y04kN9435fSJg=="')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.eduworks.com/cass/0.1/framework"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"This is an example of POSTing a new object."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"New Framework"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/75.7a53fe46.js.gz b/docs/assets/js/75.a205d544.js.gz similarity index 98% rename from docs/assets/js/75.7a53fe46.js.gz rename to docs/assets/js/75.a205d544.js.gz index 99e0b6a23..5425ba459 100644 Binary files a/docs/assets/js/75.7a53fe46.js.gz and b/docs/assets/js/75.a205d544.js.gz differ diff --git a/docs/assets/js/76.e3201684.js b/docs/assets/js/76.c53136da.js similarity index 99% rename from docs/assets/js/76.e3201684.js rename to docs/assets/js/76.c53136da.js index 9f406a026..8d618061d 100644 --- a/docs/assets/js/76.e3201684.js +++ b/docs/assets/js/76.c53136da.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{700:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"delete"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[e._v("#")]),e._v(" Delete")]),e._v(" "),t("p",[e._v("To delete an object from a CaSS Repository:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Construct a url to "),t("code",[e._v("http(s)://///")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Endpoint:")]),e._v(" Endpoint of the CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("Type:")]),e._v(" Type of the object in semi-reversed notation\n"),t("ul",[t("li",[e._v("(ex: "),t("em",[e._v("schema.eduworks.com.cass.0.1.framework")]),e._v(")")])])]),e._v(" "),t("li",[t("strong",[e._v("Id:")]),e._v(" GUID for the object\n"),t("ul",[t("li",[e._v("This identifier may differ from the value stored in the object’s @id field. This is used when registering data stored on another server.")]),e._v(" "),t("li",[e._v("For registering data retrieved from another server, a typical identifier for storage in CaSS is the MD5 hash of the @id field.")])])]),e._v(" "),t("li",[t("strong",[e._v("Version:")]),e._v(" Numerical indicator of the version, typically a last modified time in unix format.")])])]),e._v(" "),t("li",[t("p",[e._v("You must include a signatureSheet entry with a valid signature of one of the owners in order to authorize the deletion of the object. This must be stored in the "),t("code",[e._v("signatureSheet")]),e._v(" header field of the request. See the "),t("RouterLink",{attrs:{to:"/dev/fundamentals/cass-repo-api/create/"}},[e._v("Create")]),e._v(" section for instructions to construct a valid signature.")],1)])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[e._v("signatureSheet (as header)"),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----MIIBI...QAB-----END PUBLIC KEY-----"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"hE7H8vPa...=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"expiry"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("1463524950899")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"server"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/"')]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n")])])]),t("ol",{attrs:{start:"3"}},[t("li",[e._v("Submit an HTTP(S) DELETE with the above URL.")])]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("DELETE")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/api/custom/data/schema.eduworks.com.cass.0.1.framework/63eae4f2-1f3b-46c0-8473-c6e4ed4404d0")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("demo.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*/*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("signatureSheet")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('[{"@owner":"-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi37h/zxQLcndtVHxknaNTRkHuZF+xCE3oQWfsSEjsBNag6J4bA3t6u6LT1Bu8nvNXXN5P7FN8c+/n7P1166MEQLHfgJ6v2Nkg/90ym/PTUhsF4e/D23qRiPrknjKlOSgASTYBmF2f75f6NEUDRmU4cxLtYCbq9Nts35ZYw1uszr/jRcyGWHoBW8F08fk6Oaj/IGURi3vv2G24pYmanp+MOVkjPDvyOJJGDFTWgIFwqCgNPw1y2foRdyoLeGlJlv0svr11vvRY28tg+TKI5GeQZhC/rFiX/nlCFr3rBL6Go7zm1X86GwSxfrqwRszKhSI7vvcuUMn3reoJ1f2N1fE7QIDAQAB-----END PUBLIC KEY-----","@context":"http://schema.eduworks.com/ebac/0.1/","@signature":"bkxuN4Tsu7pyYt8LduFehmgyAcJkHMwvpayKLKnbqBk1KU4naPgqEy1v+NfdVsMVTn1wz5Obn7XcegL8Mds8aNijz/fVGjZrGHu5Vp+VTJoXvAAA6SdeYI2RygegVBlwBemCT+NFqMM6kws6zHndrPvkOa5sIdwUtmoriWaO3p4pzNWRxl4x2ziO95Ko4u3MTQ/d87xMCJLE5LuXZiadRknhPgJSGmuK7WBzaxmOS+4YM9Ju9HF6ywIvMIYKQk8pzRw+Y/23KuPxAxhyk+8CCA1XvVlUkUJaIu8Al24nQVO77MgeHzB1S9p0JaxodhqJgYD/DNri3tJ3uNQntpHhMQ==","@type":"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature","expiry":1463528926960,"server":"https://demo.cassproject.org/api/custom/data/schema.eduworks.com.cass.0.1.framework/63eae4f2-1f3b-46c0-8473-c6e4ed4404d0/1463528860831"}]')])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("X-Requested-With")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("XMLHttpRequest")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://demo.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Referer")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://demo.cassproject.org/cass.example/framework.html")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate, sdch")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n"),t("span",{pre:!0,attrs:{class:"token response-status"}},[t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token status-code number"}},[e._v("200")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token reason-phrase string"}},[e._v("OK")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Date")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Tue, 17 May 2016 23:48:00 GMT")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Server")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Apache-Coyote/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Methods")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("GET, PUT, POST, DELETE, OPTIONS")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Headers")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("If-Modified-Since, Content-Type, Content-Range, Content-Disposition, Content-Description, signatureSheet")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("cache-control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("private, no-cache, no-store")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("application/json")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Set-Cookie")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("JSESSIONID=F3292AE7080994683219BD9256C3E787; Path=/cass-0.0.1/; HttpOnly")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Keep-Alive")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("timeout=5, max=100")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Keep-Alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Transfer-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("chunked")])]),e._v("\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{697:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"delete"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#delete"}},[e._v("#")]),e._v(" Delete")]),e._v(" "),t("p",[e._v("To delete an object from a CaSS Repository:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Construct a url to "),t("code",[e._v("http(s)://///")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Endpoint:")]),e._v(" Endpoint of the CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("Type:")]),e._v(" Type of the object in semi-reversed notation\n"),t("ul",[t("li",[e._v("(ex: "),t("em",[e._v("schema.eduworks.com.cass.0.1.framework")]),e._v(")")])])]),e._v(" "),t("li",[t("strong",[e._v("Id:")]),e._v(" GUID for the object\n"),t("ul",[t("li",[e._v("This identifier may differ from the value stored in the object’s @id field. This is used when registering data stored on another server.")]),e._v(" "),t("li",[e._v("For registering data retrieved from another server, a typical identifier for storage in CaSS is the MD5 hash of the @id field.")])])]),e._v(" "),t("li",[t("strong",[e._v("Version:")]),e._v(" Numerical indicator of the version, typically a last modified time in unix format.")])])]),e._v(" "),t("li",[t("p",[e._v("You must include a signatureSheet entry with a valid signature of one of the owners in order to authorize the deletion of the object. This must be stored in the "),t("code",[e._v("signatureSheet")]),e._v(" header field of the request. See the "),t("RouterLink",{attrs:{to:"/dev/fundamentals/cass-repo-api/create/"}},[e._v("Create")]),e._v(" section for instructions to construct a valid signature.")],1)])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[e._v("signatureSheet (as header)"),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----MIIBI...QAB-----END PUBLIC KEY-----"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"hE7H8vPa...=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"expiry"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("1463524950899")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"server"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/"')]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n")])])]),t("ol",{attrs:{start:"3"}},[t("li",[e._v("Submit an HTTP(S) DELETE with the above URL.")])]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("DELETE")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/api/custom/data/schema.eduworks.com.cass.0.1.framework/63eae4f2-1f3b-46c0-8473-c6e4ed4404d0")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("demo.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*/*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("signatureSheet")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('[{"@owner":"-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi37h/zxQLcndtVHxknaNTRkHuZF+xCE3oQWfsSEjsBNag6J4bA3t6u6LT1Bu8nvNXXN5P7FN8c+/n7P1166MEQLHfgJ6v2Nkg/90ym/PTUhsF4e/D23qRiPrknjKlOSgASTYBmF2f75f6NEUDRmU4cxLtYCbq9Nts35ZYw1uszr/jRcyGWHoBW8F08fk6Oaj/IGURi3vv2G24pYmanp+MOVkjPDvyOJJGDFTWgIFwqCgNPw1y2foRdyoLeGlJlv0svr11vvRY28tg+TKI5GeQZhC/rFiX/nlCFr3rBL6Go7zm1X86GwSxfrqwRszKhSI7vvcuUMn3reoJ1f2N1fE7QIDAQAB-----END PUBLIC KEY-----","@context":"http://schema.eduworks.com/ebac/0.1/","@signature":"bkxuN4Tsu7pyYt8LduFehmgyAcJkHMwvpayKLKnbqBk1KU4naPgqEy1v+NfdVsMVTn1wz5Obn7XcegL8Mds8aNijz/fVGjZrGHu5Vp+VTJoXvAAA6SdeYI2RygegVBlwBemCT+NFqMM6kws6zHndrPvkOa5sIdwUtmoriWaO3p4pzNWRxl4x2ziO95Ko4u3MTQ/d87xMCJLE5LuXZiadRknhPgJSGmuK7WBzaxmOS+4YM9Ju9HF6ywIvMIYKQk8pzRw+Y/23KuPxAxhyk+8CCA1XvVlUkUJaIu8Al24nQVO77MgeHzB1S9p0JaxodhqJgYD/DNri3tJ3uNQntpHhMQ==","@type":"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature","expiry":1463528926960,"server":"https://demo.cassproject.org/api/custom/data/schema.eduworks.com.cass.0.1.framework/63eae4f2-1f3b-46c0-8473-c6e4ed4404d0/1463528860831"}]')])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("X-Requested-With")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("XMLHttpRequest")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://demo.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Referer")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://demo.cassproject.org/cass.example/framework.html")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate, sdch")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n"),t("span",{pre:!0,attrs:{class:"token response-status"}},[t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token status-code number"}},[e._v("200")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token reason-phrase string"}},[e._v("OK")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Date")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Tue, 17 May 2016 23:48:00 GMT")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Server")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Apache-Coyote/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Methods")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("GET, PUT, POST, DELETE, OPTIONS")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Headers")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("If-Modified-Since, Content-Type, Content-Range, Content-Disposition, Content-Description, signatureSheet")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("cache-control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("private, no-cache, no-store")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("application/json")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Set-Cookie")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("JSESSIONID=F3292AE7080994683219BD9256C3E787; Path=/cass-0.0.1/; HttpOnly")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Keep-Alive")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("timeout=5, max=100")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Keep-Alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Transfer-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("chunked")])]),e._v("\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/76.c53136da.js.gz b/docs/assets/js/76.c53136da.js.gz new file mode 100644 index 000000000..ef8c730b1 Binary files /dev/null and b/docs/assets/js/76.c53136da.js.gz differ diff --git a/docs/assets/js/76.e3201684.js.gz b/docs/assets/js/76.e3201684.js.gz deleted file mode 100644 index 71ffc3ecb..000000000 Binary files a/docs/assets/js/76.e3201684.js.gz and /dev/null differ diff --git a/docs/assets/js/77.6ce0e9a2.js b/docs/assets/js/77.27258075.js similarity index 99% rename from docs/assets/js/77.6ce0e9a2.js rename to docs/assets/js/77.27258075.js index f0bd22a36..5a15d1362 100644 --- a/docs/assets/js/77.6ce0e9a2.js +++ b/docs/assets/js/77.27258075.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{701:function(e,t,a){"use strict";a.r(t);var s=a(69),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"get"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[e._v("#")]),e._v(" Get")]),e._v(" "),t("p",[t("em",[e._v("aka '"),t("strong",[e._v("READ")]),e._v("'")])]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Construct a url to "),t("code",[e._v("http(s)://///")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Endpoint:")]),e._v(" Endpoint of the CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("Type "),t("em",[e._v("(Optional)")]),e._v(":")]),e._v(" Type of the object in semi-reversed notation\n"),t("ul",[t("li",[e._v("(ex: schema.eduworks.com.cass.0.1.framework)")]),e._v(" "),t("li",[e._v("Including this field, when possible, increases retrieval speed.")])])]),e._v(" "),t("li",[t("strong",[e._v("Id:")]),e._v(" Identifier of the object.\n"),t("ul",[t("li",[e._v("This identifier may differ from the value stored in the object’s @id field. This is used when registering data retrieved from another server.")])])]),e._v(" "),t("li",[t("strong",[e._v("Version "),t("em",[e._v("(Optional)")]),e._v(":")]),e._v(" Numerical indicator of the version, typically a last modified time in unix format. If omitted, the latest version.")])])]),e._v(" "),t("li",[t("p",[e._v("Should the object be defined in the schema as a protected type or have encrypted fields:")]),e._v(" "),t("ul",[t("li",[e._v("You must include a signatureSheet entry with a valid signature of one of the owners in order to authorize the retrieval of the object. This requires the method type of the HTTP request to be a POST. See the "),t("a",{attrs:{href:"TODOTODOTODO"}},[e._v("SignatureSheet Section")]),e._v(" for instructions to construct a valid signature.\n"),t("ul",[t("li",[e._v("Alternatively, you may keep the method type as GET and include the signature sheet in the signatureSheet header as JSON.")])])])])])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[e._v("signatureSheet (as multi part mime attachment or header)"),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----MIIBI ... QAB-----END PUBLIC KEY-----"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"hE7H8vPa...=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"expiry"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("1463524950899")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"server"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/"')]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n")])])]),t("ol",{attrs:{start:"3"}},[t("li",[e._v("Submit an HTTP(S) GET with the above URL.")])]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("GET")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/data/schema.eduworks.com.cass.0.1.competency/758bebae-c12e-4be2-89db-1fad7854546e/1456271061920")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Cache-Control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("max-age=0")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Upgrade-Insecure-Requests")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate, sdch")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n"),t("span",{pre:!0,attrs:{class:"token response-status"}},[t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token status-code number"}},[e._v("200")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token reason-phrase string"}},[e._v("OK")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Date")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Tue, 17 May 2016 22:48:54 GMT")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Server")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Apache-Coyote/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Methods")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("GET, PUT, POST, DELETE, OPTIONS")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Headers")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("If-Modified-Since, Content-Type, Content-Range, Content-Disposition, Content-Description, signatureSheet")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("cache-control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("private, no-cache, no-store")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("application/json")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Keep-Alive")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("timeout=5, max=100")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Keep-Alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Transfer-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("chunked")])]),e._v("\n")])])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("If the GET includes a signature as a multi-part POST, the method type must be POST.")]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("POST")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/data/schema.eduworks.com.cass.0.1.competency/93c19e2a-2306-45ac-86a6-67e73b8042a8")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Length")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("1233")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*/*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("multipart/form-data; boundary=----WebKitFormBoundaryzFvq2ZifKkR7nmQG")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Referer")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org/cass.example/framework.html")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n------WebKitFormBoundaryzFvq2ZifKkR7nmQG\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Disposition")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('form-data; name="signatureSheet"')])]),e._v('\n[\n {\n "@owner" : "-----BEGIN PUBLIC KEY-----MIIBI...QAB-----END PUBLIC KEY-----",\n "@context" : "http://schema.eduworks.com/ebac/0.1/",\n "@signature" : "eQOJt9...==",\n "@type" : "http://schema.eduworks.com/ebac/0.1/timeLimitedSignature",\n "expiry" : 1463525567195,\n "server" : "http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.competency/93c19e2a-2306-45ac-86a6-67e73b8042a8"\n }\n]\n------WebKitFormBoundaryzFvq2ZifKkR7nmQG--\n')])])])]),e._v(" "),t("ol",{attrs:{start:"4"}},[t("li",[t("p",[e._v("Receive a single JSON-LD object as a reply.")])]),e._v(" "),t("li",[t("p",[e._v("(Optional) Validate the object by verifying the signatures.")]),e._v(" "),t("ul",[t("li",[e._v("Select a signature, iterate over all owners.\n"),t("ul",[t("li",[e._v("Decode the owner public key.\n"),t("ul",[t("li",[e._v("The format is X.509 SubjectPublicKeyInfo/OpenSSL PEM public key.")])])]),e._v(" "),t("li",[e._v("Decode the signature.\n"),t("ul",[t("li",[e._v("The format is Base64.")])])]),e._v(" "),t("li",[e._v("Create a copy of the object.")]),e._v(" "),t("li",[e._v("Remove "),t("code",[e._v("@signature")]),e._v(", "),t("code",[e._v("@owner")]),e._v(", "),t("code",[e._v("@reader")]),e._v(", and "),t("code",[e._v("@id")]),e._v(" keys (and values) from the object.")]),e._v(" "),t("li",[e._v("Serialize the object in JSON format (UTF-8) with the keys sorted in UTF-8 string sort order and with no whitespace.")]),e._v(" "),t("li",[e._v("Verify the serialized object using a SHA1 digest of the serialized object, and RSA-2048 bit encryption.\n"),t("ul",[t("li",[e._v("Note the signature is Base64 encoded. Most RSA libraries require raw byte streams.")]),e._v(" "),t("li",[e._v("Note that if insufficient permissions were provided to retrieve the entire object, the signature will fail.")])])])])])])])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@id"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.competency/93c19e2a-2306-45ac-86a6-67e73b8042a8/1456271062644"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----\\r\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvheHGtT0Aw4d2xlHfWw5\\r\\nJq6VixsUoTMoF6P6v/wmNhO3TYpGfYYV6pP2t+wHRJXss8CANp0yjnd9GI0gxHGs\\r\\nBxEDj5ykRYu+iC1i4SKNRVPy3BR8AHaOkAnXZRhEKtK3yloHh/aDs/6xNgMyBiPB\\r\\nZ+msLuI/7B/ecIkA0qtITWZvx0V/qiApzTC+d60mYedI37rhfmqFNkJwz2aAkpbd\\r\\nsxsUvHB1bCUS3S1OC6DMCEWWCBY5V8UUbE/V8a5Bhwv6GJiA+u+LxvUCY6rsaEJs\\r\\nOFLuxfJWeAYlcq2DBkS3CUAzqJ/aJzJjG3l8+GfdUOfKVJAjKJXAUkrCAvJsJ4Bt\\r\\npwIDAQAB\\r\\n-----END PUBLIC KEY-----\\r\\n"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"SQFA2Ej14wK78/VS7buKtGwqeNkycYaQF/jJxXbFQcPBH9TjrimwHAON5P83sRyrMe3KnDI/EHUyzh2dnhy+clZzehMhJL+DHtA1lYfdBEC4wIYleIrRVsUslTtfmYz27ZvUX23jyzA2wLH55HxNxUqCAlSZVaLsm3f9i0JD+MVJohJQoJJqNnSSY9lS1JOpH07q4VdQWvU31t/AFTvLWY7Q6tCzKtEJYcH25fryEDY8cJ4uyGRgdNE8/a+2w31uYS9FKsCWzUY47neue807AlZk4JT0VppzxcI09PNKsHLOLaAVXexi2Vl8uWRztBBrES0CWw3br9cm7fQcxy9bWw=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1/competency"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"description"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"The ability to combine pieces of information to form general rules or conclusions (includes finding a relationship among seemingly unrelated events)."')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"name"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"Inductive Reasoning"')]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{699:function(e,t,a){"use strict";a.r(t);var s=a(69),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"get"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[e._v("#")]),e._v(" Get")]),e._v(" "),t("p",[t("em",[e._v("aka '"),t("strong",[e._v("READ")]),e._v("'")])]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Construct a url to "),t("code",[e._v("http(s)://///")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Endpoint:")]),e._v(" Endpoint of the CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("Type "),t("em",[e._v("(Optional)")]),e._v(":")]),e._v(" Type of the object in semi-reversed notation\n"),t("ul",[t("li",[e._v("(ex: schema.eduworks.com.cass.0.1.framework)")]),e._v(" "),t("li",[e._v("Including this field, when possible, increases retrieval speed.")])])]),e._v(" "),t("li",[t("strong",[e._v("Id:")]),e._v(" Identifier of the object.\n"),t("ul",[t("li",[e._v("This identifier may differ from the value stored in the object’s @id field. This is used when registering data retrieved from another server.")])])]),e._v(" "),t("li",[t("strong",[e._v("Version "),t("em",[e._v("(Optional)")]),e._v(":")]),e._v(" Numerical indicator of the version, typically a last modified time in unix format. If omitted, the latest version.")])])]),e._v(" "),t("li",[t("p",[e._v("Should the object be defined in the schema as a protected type or have encrypted fields:")]),e._v(" "),t("ul",[t("li",[e._v("You must include a signatureSheet entry with a valid signature of one of the owners in order to authorize the retrieval of the object. This requires the method type of the HTTP request to be a POST. See the "),t("a",{attrs:{href:"TODOTODOTODO"}},[e._v("SignatureSheet Section")]),e._v(" for instructions to construct a valid signature.\n"),t("ul",[t("li",[e._v("Alternatively, you may keep the method type as GET and include the signature sheet in the signatureSheet header as JSON.")])])])])])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[e._v("signatureSheet (as multi part mime attachment or header)"),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----MIIBI ... QAB-----END PUBLIC KEY-----"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"hE7H8vPa...=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/ebac/0.1/timeLimitedSignature"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"expiry"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[e._v("1463524950899")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"server"')]),e._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/"')]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n")])])]),t("ol",{attrs:{start:"3"}},[t("li",[e._v("Submit an HTTP(S) GET with the above URL.")])]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("GET")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/data/schema.eduworks.com.cass.0.1.competency/758bebae-c12e-4be2-89db-1fad7854546e/1456271061920")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Cache-Control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("max-age=0")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Upgrade-Insecure-Requests")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate, sdch")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n"),t("span",{pre:!0,attrs:{class:"token response-status"}},[t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token status-code number"}},[e._v("200")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token reason-phrase string"}},[e._v("OK")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Date")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Tue, 17 May 2016 22:48:54 GMT")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Server")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Apache-Coyote/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Methods")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("GET, PUT, POST, DELETE, OPTIONS")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Access-Control-Allow-Headers")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("If-Modified-Since, Content-Type, Content-Range, Content-Disposition, Content-Description, signatureSheet")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("cache-control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("private, no-cache, no-store")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("application/json")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Keep-Alive")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("timeout=5, max=100")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Keep-Alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Transfer-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("chunked")])]),e._v("\n")])])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("If the GET includes a signature as a multi-part POST, the method type must be POST.")]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("POST")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/data/schema.eduworks.com.cass.0.1.competency/93c19e2a-2306-45ac-86a6-67e73b8042a8")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Length")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("1233")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*/*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("multipart/form-data; boundary=----WebKitFormBoundaryzFvq2ZifKkR7nmQG")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Referer")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org/cass.example/framework.html")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n------WebKitFormBoundaryzFvq2ZifKkR7nmQG\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Disposition")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('form-data; name="signatureSheet"')])]),e._v('\n[\n {\n "@owner" : "-----BEGIN PUBLIC KEY-----MIIBI...QAB-----END PUBLIC KEY-----",\n "@context" : "http://schema.eduworks.com/ebac/0.1/",\n "@signature" : "eQOJt9...==",\n "@type" : "http://schema.eduworks.com/ebac/0.1/timeLimitedSignature",\n "expiry" : 1463525567195,\n "server" : "http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.competency/93c19e2a-2306-45ac-86a6-67e73b8042a8"\n }\n]\n------WebKitFormBoundaryzFvq2ZifKkR7nmQG--\n')])])])]),e._v(" "),t("ol",{attrs:{start:"4"}},[t("li",[t("p",[e._v("Receive a single JSON-LD object as a reply.")])]),e._v(" "),t("li",[t("p",[e._v("(Optional) Validate the object by verifying the signatures.")]),e._v(" "),t("ul",[t("li",[e._v("Select a signature, iterate over all owners.\n"),t("ul",[t("li",[e._v("Decode the owner public key.\n"),t("ul",[t("li",[e._v("The format is X.509 SubjectPublicKeyInfo/OpenSSL PEM public key.")])])]),e._v(" "),t("li",[e._v("Decode the signature.\n"),t("ul",[t("li",[e._v("The format is Base64.")])])]),e._v(" "),t("li",[e._v("Create a copy of the object.")]),e._v(" "),t("li",[e._v("Remove "),t("code",[e._v("@signature")]),e._v(", "),t("code",[e._v("@owner")]),e._v(", "),t("code",[e._v("@reader")]),e._v(", and "),t("code",[e._v("@id")]),e._v(" keys (and values) from the object.")]),e._v(" "),t("li",[e._v("Serialize the object in JSON format (UTF-8) with the keys sorted in UTF-8 string sort order and with no whitespace.")]),e._v(" "),t("li",[e._v("Verify the serialized object using a SHA1 digest of the serialized object, and RSA-2048 bit encryption.\n"),t("ul",[t("li",[e._v("Note the signature is Base64 encoded. Most RSA libraries require raw byte streams.")]),e._v(" "),t("li",[e._v("Note that if insufficient permissions were provided to retrieve the entire object, the signature will fail.")])])])])])])])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@id"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.competency/93c19e2a-2306-45ac-86a6-67e73b8042a8/1456271062644"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----\\r\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvheHGtT0Aw4d2xlHfWw5\\r\\nJq6VixsUoTMoF6P6v/wmNhO3TYpGfYYV6pP2t+wHRJXss8CANp0yjnd9GI0gxHGs\\r\\nBxEDj5ykRYu+iC1i4SKNRVPy3BR8AHaOkAnXZRhEKtK3yloHh/aDs/6xNgMyBiPB\\r\\nZ+msLuI/7B/ecIkA0qtITWZvx0V/qiApzTC+d60mYedI37rhfmqFNkJwz2aAkpbd\\r\\nsxsUvHB1bCUS3S1OC6DMCEWWCBY5V8UUbE/V8a5Bhwv6GJiA+u+LxvUCY6rsaEJs\\r\\nOFLuxfJWeAYlcq2DBkS3CUAzqJ/aJzJjG3l8+GfdUOfKVJAjKJXAUkrCAvJsJ4Bt\\r\\npwIDAQAB\\r\\n-----END PUBLIC KEY-----\\r\\n"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"SQFA2Ej14wK78/VS7buKtGwqeNkycYaQF/jJxXbFQcPBH9TjrimwHAON5P83sRyrMe3KnDI/EHUyzh2dnhy+clZzehMhJL+DHtA1lYfdBEC4wIYleIrRVsUslTtfmYz27ZvUX23jyzA2wLH55HxNxUqCAlSZVaLsm3f9i0JD+MVJohJQoJJqNnSSY9lS1JOpH07q4VdQWvU31t/AFTvLWY7Q6tCzKtEJYcH25fryEDY8cJ4uyGRgdNE8/a+2w31uYS9FKsCWzUY47neue807AlZk4JT0VppzxcI09PNKsHLOLaAVXexi2Vl8uWRztBBrES0CWw3br9cm7fQcxy9bWw=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1/competency"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"description"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"The ability to combine pieces of information to form general rules or conclusions (includes finding a relationship among seemingly unrelated events)."')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"name"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"Inductive Reasoning"')]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/77.6ce0e9a2.js.gz b/docs/assets/js/77.27258075.js.gz similarity index 96% rename from docs/assets/js/77.6ce0e9a2.js.gz rename to docs/assets/js/77.27258075.js.gz index b946e8c51..72d2e3b2f 100644 Binary files a/docs/assets/js/77.6ce0e9a2.js.gz and b/docs/assets/js/77.27258075.js.gz differ diff --git a/docs/assets/js/78.989c1285.js b/docs/assets/js/78.69080fc5.js similarity index 99% rename from docs/assets/js/78.989c1285.js rename to docs/assets/js/78.69080fc5.js index 25191f9a3..de0ebeef9 100644 --- a/docs/assets/js/78.989c1285.js +++ b/docs/assets/js/78.69080fc5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{699:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"search"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[e._v("#")]),e._v(" Search")]),e._v(" "),t("p",[e._v("To search for one or more objects in a CaSS Repository:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Construct a search query according to the "),t("a",{attrs:{href:"https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Simple Query"),t("OutboundLink")],1),e._v(" format of ElasticSearch. "),t("code",[e._v('(@type:"http://schema.eduworks.com/cass/0.1/framework") AND ("O*NET")')])])]),e._v(" "),t("li",[t("p",[e._v("Construct a url to "),t("code",[e._v("http(s):///sky/repo/search?q=")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Endpoint:")]),e._v(" Endpoint of the CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("q:")]),e._v(" Search query (URL encoded).")])])])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("https://sandbox.service.cassproject.org/sky/repo/search?q=(@type:%22http://schema.eduworks.com/cass/0.1/framework%22)\n")])])]),t("ol",{attrs:{start:"3"}},[t("li",[t("p",[e._v("Should the desired objects be defined in the schema as a protected type or have encrypted fields:")]),e._v(" "),t("ul",[t("li",[e._v("You must include a signatureSheet entry with a valid signature of one of the owners in order to authorize the retrieval of the object. This may be done in one of two ways:\n"),t("ul",[t("li",[e._v("Include the signature sheet as a Multi Part Mime attachment of the HTTP request, this requires the request be a POST.")]),e._v(" "),t("li",[e._v("Alternatively, you may include the signature sheet in a header and use the "),t("strong",[e._v("q")]),e._v(" URL parameter.")]),e._v(" "),t("li",[e._v("See the Put section for instructions to construct a valid signatureSheet signature.")])])])])]),e._v(" "),t("li",[t("p",[e._v("Submit a HTTP(S) GET with the above URL.")])])]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("GET")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/sky/repo/search?q=(@type:%22http://schema.eduworks.com/cass/0.1/framework%22)")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Cache-Control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("max-age=0")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Upgrade-Insecure-Requests")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate, sdch")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n")])])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("Should the GET include a signatureSheet, the method type must be POST.")]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("POST")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/sky/repo/search")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Length")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("293")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*/*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("multipart/form-data; boundary=----WebKitFormBoundaryYUvs9MBlv0jPr3Lp")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Referer")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org/cass.example/framework.html")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n------WebKitFormBoundaryYUvs9MBlv0jPr3Lp\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Disposition")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('form-data; name="data"')])]),e._v('\n\n(@type:"http://schema.eduworks.com/cass/0.1/framework")\n------WebKitFormBoundaryYUvs9MBlv0jPr3Lp\n'),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Disposition")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('form-data; name="signatureSheet"')])]),e._v("\n\n[]\n------WebKitFormBoundaryYUvs9MBlv0jPr3Lp--\n")])])])]),e._v(" "),t("ol",{attrs:{start:"5"}},[t("li",[e._v("Receive a JSON Array with zero or more JSON-LD objects representing search results, up to 50.")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("To retrieve additional objects, use the URL Parameter "),t("strong",[e._v("size")]),e._v(" to increase the size of the search results or "),t("strong",[e._v("start")]),e._v(" to perform paging.")])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@id"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/007c67a2-c3a1-4b38-b222-a47e3c6cef39/1461770282857"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----MIIBI...-----END PUBLIC KEY-----"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"Nj4vGM...=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1/framework"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"description"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"Test framework for SoarTech"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"name"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"SoarTech Test"')]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{703:function(e,t,a){"use strict";a.r(t);var s=a(69),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"search"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[e._v("#")]),e._v(" Search")]),e._v(" "),t("p",[e._v("To search for one or more objects in a CaSS Repository:")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Construct a search query according to the "),t("a",{attrs:{href:"https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Simple Query"),t("OutboundLink")],1),e._v(" format of ElasticSearch. "),t("code",[e._v('(@type:"http://schema.eduworks.com/cass/0.1/framework") AND ("O*NET")')])])]),e._v(" "),t("li",[t("p",[e._v("Construct a url to "),t("code",[e._v("http(s):///sky/repo/search?q=")])]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Endpoint:")]),e._v(" Endpoint of the CaSS Repository")]),e._v(" "),t("li",[t("strong",[e._v("q:")]),e._v(" Search query (URL encoded).")])])])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("https://sandbox.service.cassproject.org/sky/repo/search?q=(@type:%22http://schema.eduworks.com/cass/0.1/framework%22)\n")])])]),t("ol",{attrs:{start:"3"}},[t("li",[t("p",[e._v("Should the desired objects be defined in the schema as a protected type or have encrypted fields:")]),e._v(" "),t("ul",[t("li",[e._v("You must include a signatureSheet entry with a valid signature of one of the owners in order to authorize the retrieval of the object. This may be done in one of two ways:\n"),t("ul",[t("li",[e._v("Include the signature sheet as a Multi Part Mime attachment of the HTTP request, this requires the request be a POST.")]),e._v(" "),t("li",[e._v("Alternatively, you may include the signature sheet in a header and use the "),t("strong",[e._v("q")]),e._v(" URL parameter.")]),e._v(" "),t("li",[e._v("See the Put section for instructions to construct a valid signatureSheet signature.")])])])])]),e._v(" "),t("li",[t("p",[e._v("Submit a HTTP(S) GET with the above URL.")])])]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("GET")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/sky/repo/search?q=(@type:%22http://schema.eduworks.com/cass/0.1/framework%22)")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Cache-Control")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("max-age=0")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Upgrade-Insecure-Requests")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate, sdch")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n")])])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("Should the GET include a signatureSheet, the method type must be POST.")]),e._v(" "),t("div",{staticClass:"language-http extra-class"},[t("pre",{pre:!0,attrs:{class:"language-http"}},[t("code",[t("span",{pre:!0,attrs:{class:"token request-line"}},[t("span",{pre:!0,attrs:{class:"token method property"}},[e._v("POST")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token request-target url"}},[e._v("/sky/repo/search")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token http-version property"}},[e._v("HTTP/1.1")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Host")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("sandbox.service.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Connection")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("keep-alive")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Length")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("293")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("*/*")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Origin")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("User-Agent")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Type")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("multipart/form-data; boundary=----WebKitFormBoundaryYUvs9MBlv0jPr3Lp")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Referer")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("https://sandbox.cassproject.org/cass.example/framework.html")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Encoding")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("gzip, deflate")])]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Accept-Language")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("en-US,en;q=0.8")])]),e._v("\n\n------WebKitFormBoundaryYUvs9MBlv0jPr3Lp\n"),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Disposition")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('form-data; name="data"')])]),e._v('\n\n(@type:"http://schema.eduworks.com/cass/0.1/framework")\n------WebKitFormBoundaryYUvs9MBlv0jPr3Lp\n'),t("span",{pre:!0,attrs:{class:"token header"}},[t("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("Content-Disposition")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token header-value"}},[e._v('form-data; name="signatureSheet"')])]),e._v("\n\n[]\n------WebKitFormBoundaryYUvs9MBlv0jPr3Lp--\n")])])])]),e._v(" "),t("ol",{attrs:{start:"5"}},[t("li",[e._v("Receive a JSON Array with zero or more JSON-LD objects representing search results, up to 50.")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("To retrieve additional objects, use the URL Parameter "),t("strong",[e._v("size")]),e._v(" to increase the size of the search results or "),t("strong",[e._v("start")]),e._v(" to perform paging.")])]),e._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@id"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://sandbox.service.cassproject.org/data/schema.eduworks.com.cass.0.1.framework/007c67a2-c3a1-4b38-b222-a47e3c6cef39/1461770282857"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@owner"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"-----BEGIN PUBLIC KEY-----MIIBI...-----END PUBLIC KEY-----"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@context"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@signature"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"Nj4vGM...=="')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"@type"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"http://schema.eduworks.com/cass/0.1/framework"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"description"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"Test framework for SoarTech"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[e._v('"name"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('"SoarTech Test"')]),e._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/78.69080fc5.js.gz b/docs/assets/js/78.69080fc5.js.gz new file mode 100644 index 000000000..6db0d0197 Binary files /dev/null and b/docs/assets/js/78.69080fc5.js.gz differ diff --git a/docs/assets/js/78.989c1285.js.gz b/docs/assets/js/78.989c1285.js.gz deleted file mode 100644 index b387b6ab1..000000000 Binary files a/docs/assets/js/78.989c1285.js.gz and /dev/null differ diff --git a/docs/assets/js/79.86e23202.js b/docs/assets/js/79.38199a17.js similarity index 85% rename from docs/assets/js/79.86e23202.js rename to docs/assets/js/79.38199a17.js index 244909bdc..0fa113702 100644 --- a/docs/assets/js/79.86e23202.js +++ b/docs/assets/js/79.38199a17.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{698:function(t,s,n){"use strict";n.r(s);var a=n(69),o=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"contacts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contacts"}},[this._v("#")]),this._v(" Contacts")]),this._v(" "),t("p",[this._v("TODO")])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{700:function(t,s,n){"use strict";n.r(s);var a=n(69),o=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"contacts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contacts"}},[this._v("#")]),this._v(" Contacts")]),this._v(" "),t("p",[this._v("TODO")])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/79.38199a17.js.gz b/docs/assets/js/79.38199a17.js.gz new file mode 100644 index 000000000..b5b3dfbda Binary files /dev/null and b/docs/assets/js/79.38199a17.js.gz differ diff --git a/docs/assets/js/79.86e23202.js.gz b/docs/assets/js/79.86e23202.js.gz deleted file mode 100644 index 8426095aa..000000000 Binary files a/docs/assets/js/79.86e23202.js.gz and /dev/null differ diff --git a/docs/assets/js/80.3f3444da.js.gz b/docs/assets/js/80.3f3444da.js.gz deleted file mode 100644 index 781b781be..000000000 Binary files a/docs/assets/js/80.3f3444da.js.gz and /dev/null differ diff --git a/docs/assets/js/80.3f3444da.js b/docs/assets/js/80.b444a2d3.js similarity index 98% rename from docs/assets/js/80.3f3444da.js rename to docs/assets/js/80.b444a2d3.js index fa0ae64f9..cb0b4bf77 100644 --- a/docs/assets/js/80.3f3444da.js +++ b/docs/assets/js/80.b444a2d3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{703:function(e,t,a){"use strict";a.r(t);var r=a(69),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"deployment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deployment"}},[e._v("#")]),e._v(" Deployment")]),e._v(" "),t("p",[e._v("Here, we'll go into detail about everything to do with deploying for production.")]),e._v(" "),t("p",[e._v("CASS is both horizontally and vertically scalable, as well as highly resilient. It can be deployed on Windows or Linux platforms in single server environments, behind multiple load balanced servers or Virtual Machines.")]),e._v(" "),t("h2",{attrs:{id:"application-server"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application-server"}},[e._v("#")]),e._v(" Application Server")]),e._v(" "),t("p",[e._v("CASS may be deployed with any Node.js process manager. "),t("strong",[e._v("PM2")]),e._v(" is the default process manager provided with an installation. CASS Application Servers are mostly stateless, with the exception of security credentials, which must be reachable from the working directory of the servlet container.")]),e._v(" "),t("p",[e._v("CASS generates several files upon startup and first use of adapters and features. As such, it is recommended that the user running the servlet container be allowed to modify the working directory of the servlet container.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Version of CaSS before 0.4 have certain compromises in place that prevent horizontal scaling. This is resolved in version 0.4.")])]),e._v(" "),t("h2",{attrs:{id:"database-scalability"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#database-scalability"}},[e._v("#")]),e._v(" Database Scalability")]),e._v(" "),t("p",[e._v("CASS uses ElasticSearch as a search engine and object store.")]),e._v(" "),t("p",[e._v("ElasticSearch is "),t("strong",[e._v("Vertically Scalable")]),e._v(" with")]),e._v(" "),t("ul",[t("li",[e._v("Processors")]),e._v(" "),t("li",[e._v("Memory")]),e._v(" "),t("li",[e._v("I/O")])]),e._v(" "),t("p",[e._v("ElasticSearch is "),t("strong",[e._v("Horizontally Scalable")]),e._v(" by defining clusters. Consult the "),t("a",{attrs:{href:"https://www.elastic.co/guide/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("ElasticSearch Documentation"),t("OutboundLink")],1),e._v(" to perform these operations.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Do not configure ElasticSearch to accept connections from the outside web, as this may expose encrypted information that is intended to be private.")])]),e._v(" "),t("h2",{attrs:{id:"web-server-proxy-load-balancing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#web-server-proxy-load-balancing"}},[e._v("#")]),e._v(" Web Server Proxy/Load Balancing")]),e._v(" "),t("p",[e._v("By default, the CASS Installation installs a web server ("),t("em",[e._v("Apache2 or HTTPD")]),e._v("), an application server ("),t("em",[e._v("PM2/Node")]),e._v("), and a database ("),t("em",[e._v("ElasticSearch")]),e._v("). The web server may be moved to another machine and scaled horizontally/vertically without issue.")]),e._v(" "),t("h2",{attrs:{id:"general-security"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-security"}},[e._v("#")]),e._v(" General Security")]),e._v(" "),t("p",[e._v("CASS uses two major layers of security:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Per-Object Security")]),e._v(" - The application that creates the data uses encryption to protect data from use by anyone, including the server owner")]),e._v(" "),t("li",[t("strong",[e._v("Server Security")]),e._v(" - Signed requests must be provided for the server to return encrypted information")])]),e._v(" "),t("p",[e._v('This two-layer strategy is called "'),t("strong",[e._v("No Knowledge")]),e._v('" Security or Privacy. It ensures the protection of a user’s data by having the server require both authentic requests to return data and mechanisms to decrypt the data that are not available on the server. This means that, by design, your server may store data that you cannot access.')])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{701:function(e,t,a){"use strict";a.r(t);var r=a(69),s=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"deployment"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deployment"}},[e._v("#")]),e._v(" Deployment")]),e._v(" "),t("p",[e._v("Here, we'll go into detail about everything to do with deploying for production.")]),e._v(" "),t("p",[e._v("CASS is both horizontally and vertically scalable, as well as highly resilient. It can be deployed on Windows or Linux platforms in single server environments, behind multiple load balanced servers or Virtual Machines.")]),e._v(" "),t("h2",{attrs:{id:"application-server"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#application-server"}},[e._v("#")]),e._v(" Application Server")]),e._v(" "),t("p",[e._v("CASS may be deployed with any Node.js process manager. "),t("strong",[e._v("PM2")]),e._v(" is the default process manager provided with an installation. CASS Application Servers are mostly stateless, with the exception of security credentials, which must be reachable from the working directory of the servlet container.")]),e._v(" "),t("p",[e._v("CASS generates several files upon startup and first use of adapters and features. As such, it is recommended that the user running the servlet container be allowed to modify the working directory of the servlet container.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Version of CaSS before 0.4 have certain compromises in place that prevent horizontal scaling. This is resolved in version 0.4.")])]),e._v(" "),t("h2",{attrs:{id:"database-scalability"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#database-scalability"}},[e._v("#")]),e._v(" Database Scalability")]),e._v(" "),t("p",[e._v("CASS uses ElasticSearch as a search engine and object store.")]),e._v(" "),t("p",[e._v("ElasticSearch is "),t("strong",[e._v("Vertically Scalable")]),e._v(" with")]),e._v(" "),t("ul",[t("li",[e._v("Processors")]),e._v(" "),t("li",[e._v("Memory")]),e._v(" "),t("li",[e._v("I/O")])]),e._v(" "),t("p",[e._v("ElasticSearch is "),t("strong",[e._v("Horizontally Scalable")]),e._v(" by defining clusters. Consult the "),t("a",{attrs:{href:"https://www.elastic.co/guide/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("ElasticSearch Documentation"),t("OutboundLink")],1),e._v(" to perform these operations.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),t("p",[e._v("Do not configure ElasticSearch to accept connections from the outside web, as this may expose encrypted information that is intended to be private.")])]),e._v(" "),t("h2",{attrs:{id:"web-server-proxy-load-balancing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#web-server-proxy-load-balancing"}},[e._v("#")]),e._v(" Web Server Proxy/Load Balancing")]),e._v(" "),t("p",[e._v("By default, the CASS Installation installs a web server ("),t("em",[e._v("Apache2 or HTTPD")]),e._v("), an application server ("),t("em",[e._v("PM2/Node")]),e._v("), and a database ("),t("em",[e._v("ElasticSearch")]),e._v("). The web server may be moved to another machine and scaled horizontally/vertically without issue.")]),e._v(" "),t("h2",{attrs:{id:"general-security"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#general-security"}},[e._v("#")]),e._v(" General Security")]),e._v(" "),t("p",[e._v("CASS uses two major layers of security:")]),e._v(" "),t("ol",[t("li",[t("strong",[e._v("Per-Object Security")]),e._v(" - The application that creates the data uses encryption to protect data from use by anyone, including the server owner")]),e._v(" "),t("li",[t("strong",[e._v("Server Security")]),e._v(" - Signed requests must be provided for the server to return encrypted information")])]),e._v(" "),t("p",[e._v('This two-layer strategy is called "'),t("strong",[e._v("No Knowledge")]),e._v('" Security or Privacy. It ensures the protection of a user’s data by having the server require both authentic requests to return data and mechanisms to decrypt the data that are not available on the server. This means that, by design, your server may store data that you cannot access.')])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/80.b444a2d3.js.gz b/docs/assets/js/80.b444a2d3.js.gz new file mode 100644 index 000000000..475944336 Binary files /dev/null and b/docs/assets/js/80.b444a2d3.js.gz differ diff --git a/docs/assets/js/82.3c81849a.js.gz b/docs/assets/js/82.3c81849a.js.gz deleted file mode 100644 index 850700826..000000000 Binary files a/docs/assets/js/82.3c81849a.js.gz and /dev/null differ diff --git a/docs/assets/js/82.3c81849a.js b/docs/assets/js/82.8cfa55f3.js similarity index 99% rename from docs/assets/js/82.3c81849a.js rename to docs/assets/js/82.8cfa55f3.js index 3d0737843..3c7bbc718 100644 --- a/docs/assets/js/82.3c81849a.js +++ b/docs/assets/js/82.8cfa55f3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{705:function(t,e,a){"use strict";a.r(e);var s=a(69),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"json-ld-rdf-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#json-ld-rdf-formats"}},[t._v("#")]),t._v(" JSON-LD, RDF Formats")]),t._v(" "),e("p",[t._v("CaSS uses "),e("a",{attrs:{href:"https://json-ld.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("JSON-LD"),e("OutboundLink")],1),t._v(" for data storage. JSON-LD is a simple, light-weight data format that's also parsable as standard JSON. It exists to provide a standard for holding '"),e("strong",[t._v("Linked Data")]),t._v("' (LD), which you can think of as meaning links to data (usually in place of the data itself) as values inside standard JSON objects.")]),t._v(" "),e("p",[t._v("JSON-LD is a compromise between rich data modeling formats such as "),e("em",[t._v("Turtle")]),t._v(" and "),e("em",[t._v("RDF-JSON")]),t._v(" and the much simpler, easier to use JSON. JSON-LD has many layers of complexity that should be unwrapped slowly. This guide will discuss a few of them necessary to use CASS.")]),t._v(" "),e("h2",{attrs:{id:"in-a-nutshell"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#in-a-nutshell"}},[t._v("#")]),t._v(" In a Nutshell")]),t._v(" "),e("p",[t._v("A JSON-LD object is a JSON object that also holds")]),t._v(" "),e("ol",[e("li",[t._v("A type ("),e("code",[t._v("@type")]),t._v(")")]),t._v(" "),e("li",[t._v("An identifier ("),e("code",[t._v("@id")]),t._v(")")])]),t._v(" "),e("p",[e("strong",[t._v("JSON Object")])]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bob"')]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[e("strong",[t._v("JSON-LD Object")])]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/Person"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://dev.cassproject.org/api/data/Bob"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"http://schema.org/name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bob"')]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("Keep in mind:")]),t._v(" "),e("ul",[e("li",[t._v("All references to fields or objects in JSON-LD are URLs, instead of IDs or long pointers.")]),t._v(" "),e("li",[t._v("A JSON-LD object should be stored and retrievable at the location indicated by its "),e("code",[t._v("@id")]),t._v(" (commonly just ‘"),e("em",[t._v("id")]),t._v("’).")]),t._v(" "),e("li",[t._v("Navigating to any URL should give you enough information to use the object.")])]),t._v(" "),e("h2",{attrs:{id:"context"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),e("p",[t._v("To make life simpler, the "),e("code",[t._v("@context")]),t._v(" field either provides something similar to a namespace or a link to a document that describes a namespace. This has the benefit of providing meaning to things like shortened fields.")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.cassproject.org/0.3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/Person"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://dev.cassproject.org/api/data/Bob"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bob"')]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The field ‘name’ is specified by the namespace to mean ‘"),e("a",{attrs:{href:"http://schema.org/name",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://schema.org/name"),e("OutboundLink")],1),t._v("’. These allow JSON-LD documents to be more tractable to developers.")]),t._v(" "),e("h2",{attrs:{id:"with-security"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-security"}},[t._v("#")]),t._v(" With Security")]),t._v(" "),e("p",[t._v("CASS includes an extension to JSON-LD called "),e("RouterLink",{attrs:{to:"/dev/security/kbac-specification/"}},[t._v("KBAC")]),t._v(" that provides additional meta-fields (prefixed with "),e("code",[t._v("@")]),t._v(") that allow objects to be permissioned using Public Key Cryptography.")],1),t._v(" "),e("p",[t._v("In short:")]),t._v(" "),e("ul",[e("li",[t._v("The "),e("code",[t._v("@owner")]),t._v(" field defines key-holders who can modify or delete an object")]),t._v(" "),e("li",[t._v("The "),e("code",[t._v("@reader")]),t._v(" field defines key-holders who can read an object’s hidden and encrypted fields")]),t._v(" "),e("li",[t._v("The "),e("code",[t._v("@signature")]),t._v(" field defines signatures that can be used to validate the integrity of the data")])]),t._v(" "),e("p",[t._v("These fields can be found in any CASS object, such as "),e("a",{attrs:{href:"https://dev.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/76ffff33-bd15-4bf3-a007-4ce247d2216d/1495040497868",target:"_blank",rel:"noopener noreferrer"}},[t._v("this one"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"resources"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#resources"}},[t._v("#")]),t._v(" Resources")]),t._v(" "),e("p",[t._v("JSON-LD is aligned with "),e("strong",[t._v("RDF")]),t._v(", which is an advanced data modeling paradigm and methodology that will not be covered here. Reading the JSON-LD specification is a good start, but the CASS Library attempts to insulate you from RDF as much as possible.")]),t._v(" "),e("h2",{attrs:{id:"other-rdf-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#other-rdf-formats"}},[t._v("#")]),t._v(" Other RDF Formats")]),t._v(" "),e("p",[t._v("Other RDF formats may be negotiated through use of the Accept header in an HTTP GET request. Supported formats are:")]),t._v(" "),e("blockquote",[e("p",[t._v("text/n4")]),t._v(" "),e("p",[t._v("text/turtle")]),t._v(" "),e("p",[t._v("application/x-turtle")]),t._v(" "),e("p",[t._v("application/rdf+xml")]),t._v(" "),e("p",[t._v("application/rdf+n4")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{706:function(t,e,a){"use strict";a.r(e);var s=a(69),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"json-ld-rdf-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#json-ld-rdf-formats"}},[t._v("#")]),t._v(" JSON-LD, RDF Formats")]),t._v(" "),e("p",[t._v("CaSS uses "),e("a",{attrs:{href:"https://json-ld.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("JSON-LD"),e("OutboundLink")],1),t._v(" for data storage. JSON-LD is a simple, light-weight data format that's also parsable as standard JSON. It exists to provide a standard for holding '"),e("strong",[t._v("Linked Data")]),t._v("' (LD), which you can think of as meaning links to data (usually in place of the data itself) as values inside standard JSON objects.")]),t._v(" "),e("p",[t._v("JSON-LD is a compromise between rich data modeling formats such as "),e("em",[t._v("Turtle")]),t._v(" and "),e("em",[t._v("RDF-JSON")]),t._v(" and the much simpler, easier to use JSON. JSON-LD has many layers of complexity that should be unwrapped slowly. This guide will discuss a few of them necessary to use CASS.")]),t._v(" "),e("h2",{attrs:{id:"in-a-nutshell"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#in-a-nutshell"}},[t._v("#")]),t._v(" In a Nutshell")]),t._v(" "),e("p",[t._v("A JSON-LD object is a JSON object that also holds")]),t._v(" "),e("ol",[e("li",[t._v("A type ("),e("code",[t._v("@type")]),t._v(")")]),t._v(" "),e("li",[t._v("An identifier ("),e("code",[t._v("@id")]),t._v(")")])]),t._v(" "),e("p",[e("strong",[t._v("JSON Object")])]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bob"')]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[e("strong",[t._v("JSON-LD Object")])]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/Person"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://dev.cassproject.org/api/data/Bob"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"http://schema.org/name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bob"')]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("Keep in mind:")]),t._v(" "),e("ul",[e("li",[t._v("All references to fields or objects in JSON-LD are URLs, instead of IDs or long pointers.")]),t._v(" "),e("li",[t._v("A JSON-LD object should be stored and retrievable at the location indicated by its "),e("code",[t._v("@id")]),t._v(" (commonly just ‘"),e("em",[t._v("id")]),t._v("’).")]),t._v(" "),e("li",[t._v("Navigating to any URL should give you enough information to use the object.")])]),t._v(" "),e("h2",{attrs:{id:"context"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),e("p",[t._v("To make life simpler, the "),e("code",[t._v("@context")]),t._v(" field either provides something similar to a namespace or a link to a document that describes a namespace. This has the benefit of providing meaning to things like shortened fields.")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.cassproject.org/0.3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/Person"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://dev.cassproject.org/api/data/Bob"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bob"')]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The field ‘name’ is specified by the namespace to mean ‘"),e("a",{attrs:{href:"http://schema.org/name",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://schema.org/name"),e("OutboundLink")],1),t._v("’. These allow JSON-LD documents to be more tractable to developers.")]),t._v(" "),e("h2",{attrs:{id:"with-security"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-security"}},[t._v("#")]),t._v(" With Security")]),t._v(" "),e("p",[t._v("CASS includes an extension to JSON-LD called "),e("RouterLink",{attrs:{to:"/dev/security/kbac-specification/"}},[t._v("KBAC")]),t._v(" that provides additional meta-fields (prefixed with "),e("code",[t._v("@")]),t._v(") that allow objects to be permissioned using Public Key Cryptography.")],1),t._v(" "),e("p",[t._v("In short:")]),t._v(" "),e("ul",[e("li",[t._v("The "),e("code",[t._v("@owner")]),t._v(" field defines key-holders who can modify or delete an object")]),t._v(" "),e("li",[t._v("The "),e("code",[t._v("@reader")]),t._v(" field defines key-holders who can read an object’s hidden and encrypted fields")]),t._v(" "),e("li",[t._v("The "),e("code",[t._v("@signature")]),t._v(" field defines signatures that can be used to validate the integrity of the data")])]),t._v(" "),e("p",[t._v("These fields can be found in any CASS object, such as "),e("a",{attrs:{href:"https://dev.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/76ffff33-bd15-4bf3-a007-4ce247d2216d/1495040497868",target:"_blank",rel:"noopener noreferrer"}},[t._v("this one"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"resources"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#resources"}},[t._v("#")]),t._v(" Resources")]),t._v(" "),e("p",[t._v("JSON-LD is aligned with "),e("strong",[t._v("RDF")]),t._v(", which is an advanced data modeling paradigm and methodology that will not be covered here. Reading the JSON-LD specification is a good start, but the CASS Library attempts to insulate you from RDF as much as possible.")]),t._v(" "),e("h2",{attrs:{id:"other-rdf-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#other-rdf-formats"}},[t._v("#")]),t._v(" Other RDF Formats")]),t._v(" "),e("p",[t._v("Other RDF formats may be negotiated through use of the Accept header in an HTTP GET request. Supported formats are:")]),t._v(" "),e("blockquote",[e("p",[t._v("text/n4")]),t._v(" "),e("p",[t._v("text/turtle")]),t._v(" "),e("p",[t._v("application/x-turtle")]),t._v(" "),e("p",[t._v("application/rdf+xml")]),t._v(" "),e("p",[t._v("application/rdf+n4")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/82.8cfa55f3.js.gz b/docs/assets/js/82.8cfa55f3.js.gz new file mode 100644 index 000000000..8afc5f5fb Binary files /dev/null and b/docs/assets/js/82.8cfa55f3.js.gz differ diff --git a/docs/assets/js/83.f920234f.js b/docs/assets/js/83.412eff02.js similarity index 99% rename from docs/assets/js/83.f920234f.js rename to docs/assets/js/83.412eff02.js index f24e22b93..b8acd8b8b 100644 --- a/docs/assets/js/83.f920234f.js +++ b/docs/assets/js/83.412eff02.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{706:function(t,s,e){"use strict";e.r(s);var a=e(69),n=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"repositories"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#repositories"}},[t._v("#")]),t._v(" Repositories")]),t._v(" "),s("p",[t._v("CASS Repositories are servers running a "),s("strong",[t._v("JSON-LD")]),t._v(" object store called "),s("strong",[t._v("SkyRepo")]),t._v(". CASS Repositories may also have extensions called "),s("strong",[t._v("Adapters")]),t._v(" that allow the repository to interoperate with other systems, standards, or APIs.")]),t._v(" "),s("h2",{attrs:{id:"background"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#background"}},[t._v("#")]),t._v(" Background")]),t._v(" "),s("p",[t._v("CASS Repositories are a federated solution to the problem of permissible open data management. As learners across the globe are covered by a large number of variable privacy laws, repositories for this data are needed that can protect against or enable discovery of learner data, depending on the scenario and permissions.")]),t._v(" "),s("p",[t._v("CASS Repositories support "),s("strong",[t._v("RESTful CRUD")]),t._v(" + "),s("strong",[t._v("Search")]),t._v(". Through Adapters, a repository may also support APIs for individual applications; however, such an API is not presently available.")]),t._v(" "),s("p",[t._v("CASS Repositories support JSON-LD formatted objects. While an incredible number of formats exist, JSON-LD was chosen for its compatibility with nearly all languages, object typing, and RDF compliance.")]),t._v(" "),s("h2",{attrs:{id:"repository-api"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#repository-api"}},[t._v("#")]),t._v(" Repository API")]),t._v(" "),s("p",[t._v("The CASS Repository API can be found "),s("RouterLink",{attrs:{to:"/dev/fundamentals/cass-repo-api/"}},[t._v("here")]),t._v(".")],1),t._v(" "),s("h2",{attrs:{id:"permissioning"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#permissioning"}},[t._v("#")]),t._v(" Permissioning")]),t._v(" "),s("p",[t._v("CASS Repository permissioning is "),s("em",[t._v("NOT")]),t._v(" role based in the traditional sense. Server administrators only have the ability to delete records, and unauthorized tampering or creation of records is protected against by the verification of the record against cryptographic signatures.")]),t._v(" "),s("p",[t._v("By default, record data is public. However, two security layers have been created to protect against unauthorized viewing:")]),t._v(" "),s("ol",[s("li",[t._v("Records are protected by client-side encryption, preventing the server administrator or a compromised server user from viewing the data.")]),t._v(" "),s("li",[t._v("Protected data is not returned by the server without authorization in the form of a signature sheet.")])]),t._v(" "),s("p",[t._v("CASS Repositories also support the protection of individual fields in a record. The repository scans for any object of type EncryptedValue and omits it from the response if the query did not contain a signature sheet authorization. See "),s("RouterLink",{attrs:{to:"/dev/fundamentals/identities-and-login/"}},[t._v("Identities and Login")]),t._v(" for further information.")],1),t._v(" "),s("h2",{attrs:{id:"code"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#code"}},[t._v("#")]),t._v(" Code")]),t._v(" "),s("p",[t._v("Creating an interface between your application and a repository is accomplished as follows:")]),t._v(" "),s("ol",[s("li",[t._v("Instantiate a Repository object and set up the endpoint."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" repo "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcRepository")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nrepo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("The repository may also be asked to search for the endpoint. It will automatically search for the endpoint at the location provided and in other typical locations."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://dev.cassproject.org"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nrepo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("autoDetectRepository")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])]),t._v(" "),s("h3",{attrs:{id:"binding-a-new-object-to-a-repository-endpoint"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#binding-a-new-object-to-a-repository-endpoint"}},[t._v("#")]),t._v(" Binding a new object to a repository endpoint")]),t._v(" "),s("p",[t._v("Every object’s identifier is the URL from which the object should be retrieved and should be stored (this is not always the case, see Aliases). This identifier may be assigned or generated.")]),t._v(" "),s("ol",[s("li",[t._v("Instantiate an object, and assign some properties."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" t "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Thing")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Developer Guide Test Object"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("Create an identifier for the object by:\n"),s("ul",[s("li",[t._v("Generating it. This will create a random UUID (version 4)"),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("Assigning it. Note that an ID must have one alpha or symbol character."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("assignId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"MyId1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])])]),t._v(" "),s("li",[t._v("You may then access two forms of the ID:\n"),s("ul",[s("li",[t._v("The "),s("strong",[t._v("Long Form")]),t._v(" includes the version number and should be used when you need to refer to an immutable version of the object that is not subject to subsequent updates."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("The "),s("strong",[t._v("Short Form")]),t._v(" does not include the version number and retrieves the latest version."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])])]),t._v(" "),s("li",[t._v("The ID, when subjected to an HTTP GET, should, if it has previously been saved, return the JSON-LD version of the object. (Note: This object has no owner. This means it can be modified or deleted by anyone.)"),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" window"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("open")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{705:function(t,s,e){"use strict";e.r(s);var a=e(69),n=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"repositories"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#repositories"}},[t._v("#")]),t._v(" Repositories")]),t._v(" "),s("p",[t._v("CASS Repositories are servers running a "),s("strong",[t._v("JSON-LD")]),t._v(" object store called "),s("strong",[t._v("SkyRepo")]),t._v(". CASS Repositories may also have extensions called "),s("strong",[t._v("Adapters")]),t._v(" that allow the repository to interoperate with other systems, standards, or APIs.")]),t._v(" "),s("h2",{attrs:{id:"background"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#background"}},[t._v("#")]),t._v(" Background")]),t._v(" "),s("p",[t._v("CASS Repositories are a federated solution to the problem of permissible open data management. As learners across the globe are covered by a large number of variable privacy laws, repositories for this data are needed that can protect against or enable discovery of learner data, depending on the scenario and permissions.")]),t._v(" "),s("p",[t._v("CASS Repositories support "),s("strong",[t._v("RESTful CRUD")]),t._v(" + "),s("strong",[t._v("Search")]),t._v(". Through Adapters, a repository may also support APIs for individual applications; however, such an API is not presently available.")]),t._v(" "),s("p",[t._v("CASS Repositories support JSON-LD formatted objects. While an incredible number of formats exist, JSON-LD was chosen for its compatibility with nearly all languages, object typing, and RDF compliance.")]),t._v(" "),s("h2",{attrs:{id:"repository-api"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#repository-api"}},[t._v("#")]),t._v(" Repository API")]),t._v(" "),s("p",[t._v("The CASS Repository API can be found "),s("RouterLink",{attrs:{to:"/dev/fundamentals/cass-repo-api/"}},[t._v("here")]),t._v(".")],1),t._v(" "),s("h2",{attrs:{id:"permissioning"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#permissioning"}},[t._v("#")]),t._v(" Permissioning")]),t._v(" "),s("p",[t._v("CASS Repository permissioning is "),s("em",[t._v("NOT")]),t._v(" role based in the traditional sense. Server administrators only have the ability to delete records, and unauthorized tampering or creation of records is protected against by the verification of the record against cryptographic signatures.")]),t._v(" "),s("p",[t._v("By default, record data is public. However, two security layers have been created to protect against unauthorized viewing:")]),t._v(" "),s("ol",[s("li",[t._v("Records are protected by client-side encryption, preventing the server administrator or a compromised server user from viewing the data.")]),t._v(" "),s("li",[t._v("Protected data is not returned by the server without authorization in the form of a signature sheet.")])]),t._v(" "),s("p",[t._v("CASS Repositories also support the protection of individual fields in a record. The repository scans for any object of type EncryptedValue and omits it from the response if the query did not contain a signature sheet authorization. See "),s("RouterLink",{attrs:{to:"/dev/fundamentals/identities-and-login/"}},[t._v("Identities and Login")]),t._v(" for further information.")],1),t._v(" "),s("h2",{attrs:{id:"code"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#code"}},[t._v("#")]),t._v(" Code")]),t._v(" "),s("p",[t._v("Creating an interface between your application and a repository is accomplished as follows:")]),t._v(" "),s("ol",[s("li",[t._v("Instantiate a Repository object and set up the endpoint."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" repo "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("EcRepository")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nrepo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("The repository may also be asked to search for the endpoint. It will automatically search for the endpoint at the location provided and in other typical locations."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://dev.cassproject.org"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nrepo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("autoDetectRepository")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])]),t._v(" "),s("h3",{attrs:{id:"binding-a-new-object-to-a-repository-endpoint"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#binding-a-new-object-to-a-repository-endpoint"}},[t._v("#")]),t._v(" Binding a new object to a repository endpoint")]),t._v(" "),s("p",[t._v("Every object’s identifier is the URL from which the object should be retrieved and should be stored (this is not always the case, see Aliases). This identifier may be assigned or generated.")]),t._v(" "),s("ol",[s("li",[t._v("Instantiate an object, and assign some properties."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" t "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Thing")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Developer Guide Test Object"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("Create an identifier for the object by:\n"),s("ul",[s("li",[t._v("Generating it. This will create a random UUID (version 4)"),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("Assigning it. Note that an ID must have one alpha or symbol character."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("assignId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"MyId1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])])]),t._v(" "),s("li",[t._v("You may then access two forms of the ID:\n"),s("ul",[s("li",[t._v("The "),s("strong",[t._v("Long Form")]),t._v(" includes the version number and should be used when you need to refer to an immutable version of the object that is not subject to subsequent updates."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])]),t._v(" "),s("li",[t._v("The "),s("strong",[t._v("Short Form")]),t._v(" does not include the version number and retrieves the latest version."),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("shortId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])])]),t._v(" "),s("li",[t._v("The ID, when subjected to an HTTP GET, should, if it has previously been saved, return the JSON-LD version of the object. (Note: This object has no owner. This means it can be modified or deleted by anyone.)"),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v("EcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" window"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("open")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("t"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/83.412eff02.js.gz b/docs/assets/js/83.412eff02.js.gz new file mode 100644 index 000000000..ccfcc74c3 Binary files /dev/null and b/docs/assets/js/83.412eff02.js.gz differ diff --git a/docs/assets/js/83.f920234f.js.gz b/docs/assets/js/83.f920234f.js.gz deleted file mode 100644 index f45512f22..000000000 Binary files a/docs/assets/js/83.f920234f.js.gz and /dev/null differ diff --git a/docs/assets/js/84.13eb7e36.js b/docs/assets/js/84.2fa86581.js similarity index 99% rename from docs/assets/js/84.13eb7e36.js rename to docs/assets/js/84.2fa86581.js index 33f6d4de4..c85b6d864 100644 --- a/docs/assets/js/84.13eb7e36.js +++ b/docs/assets/js/84.2fa86581.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{708:function(e,a,s){"use strict";s.r(a);var t=s(69),r=Object(t.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[e._v("#")]),e._v(" Search")]),e._v(" "),a("h2",{attrs:{id:"basics"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#basics"}},[e._v("#")]),e._v(" Basics")]),e._v(" "),a("p",[e._v("CASS uses "),a("a",{attrs:{href:"https://logz.io/blog/elasticsearch-queries/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ElasticSearch Simple Query String"),a("OutboundLink")],1),e._v(" with several optional parameters as its search mechanism.")]),e._v(" "),a("p",[e._v("The best way to experience this is via a web browser. Optionally, an HTTP request tool like PostMan or curl would also be sufficient.")]),e._v(" "),a("p",[e._v("The search endpoint is typically at the following URL:")]),e._v(" "),a("p",[a("code",[e._v("http(s?):///api/data")])]),e._v(" "),a("p",[e._v("e.g.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data")])]),e._v(" "),a("p",[e._v("The search allows two forms of querying and providing data: a URL query string and via an HTTP POST request.")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("The query string basic form is show below (the search is ‘*’, or everything):\n"),a("code",[e._v("https://dev.cassproject.org/api/data?q=*")])]),e._v(" "),a("ul",[a("li",[e._v("Optional parameters include:\n"),a("ul",[a("li",[e._v("Size, the size of the response.\n"),a("code",[e._v("https://dev.cassproject.org/api/data?size=100&q=*")])]),e._v(" "),a("li",[e._v("Start, used for paging.\n"),a("code",[e._v("https://dev.cassproject.org/api/data?start=50&q=*")])])])]),e._v(" "),a("li",[a("em",[e._v("Note: This may be used as part of a GET or POST when including a signature sheet.")])])])]),e._v(" "),a("li",[a("p",[e._v("The POST method requires a multi part post containing a JSON Object named ‘searchParams’. This can be useful to avoid issues with URL query string encoding.")]),e._v(" "),a("ul",[a("li",[e._v("General format:"),a("div",{staticClass:"language-http extra-class"},[a("pre",{pre:!0,attrs:{class:"language-http"}},[a("code",[a("span",{pre:!0,attrs:{class:"token header"}},[a("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("https")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),a("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("//dev.cassproject.org/api/data")])]),e._v('\n{\n "key": val,\n ...\n}\n')])])])]),e._v(" "),a("li",[e._v("The query appears in the ‘q’ field of the ‘searchParams’ object."),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"q"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v('"*"')]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])]),e._v(" "),a("li",[e._v("Optional parameters include:\n"),a("ul",[a("li",[e._v("Size, the size of the response.")])]),e._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"q"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v('"*"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"size"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])]),e._v(" "),a("li",[e._v("Start, used for paging."),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"q"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v('"*"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"start"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[e._v("50")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])])])])]),e._v(" "),a("h2",{attrs:{id:"common-queries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-queries"}},[e._v("#")]),e._v(" Common Queries")]),e._v(" "),a("p",[e._v("There are a number of common queries that are useful in the practice of using CASS.")]),e._v(" "),a("h3",{attrs:{id:"search-everything"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-everything"}},[e._v("#")]),e._v(" Search everything")]),e._v(" "),a("p",[e._v("This query searches all fields for any distinct word ‘tool’. Note that plural forms will also be returned.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=tool")])]),e._v(" "),a("h3",{attrs:{id:"search-by-a-field"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-by-a-field"}},[e._v("#")]),e._v(" Search by a field.")]),e._v(" "),a("p",[e._v("This query searches for a string inside a field.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=name:tool")])]),e._v(" "),a("h3",{attrs:{id:"search-by-a-partial-field"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-by-a-partial-field"}},[e._v("#")]),e._v(" Search by a partial field.")]),e._v(" "),a("p",[e._v("This query searches for a string inside a field.")]),e._v(" "),a("p",[a("code",[e._v('https://dev.cassproject.org/api/data?q=name:"Workplace Readiness Skills"')])]),e._v(" "),a("h3",{attrs:{id:"search-for-records-of-a-certain-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-for-records-of-a-certain-type"}},[e._v("#")]),e._v(" Search for records of a certain type.")]),e._v(" "),a("p",[e._v("This query searches for competencies.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=@type:Competency")])]),e._v(" "),a("p",[e._v("or")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data/schema.cassproject.org.0.2.Competency?q=*")])]),e._v(" "),a("h3",{attrs:{id:"search-for-records-by-owner-identifier"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-for-records-by-owner-identifier"}},[e._v("#")]),e._v(" Search for records by owner identifier.")]),e._v(" "),a("p",[e._v("This query searches for records owned by a particular individual.")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('https://dev.cassproject.org/api/data?q=@owner:"-----BEGIN%20PUBLIC%20KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl5Zsr3KlThU%2BOGbkT%2BLd24j0u2AUMnh7YU7%2B%2FPiKzJaR%2Fzv06RFALl%2Bm2kmNXFgnsIZQeE4OvHWXptJsghIlrL36NbQwrpknXglqQ9dPHIKrdlvnSvvPvWSBcs%2BO2eKJg4A2wSjx5Ls6lJRijRLlIwRC%2FSD8tx%2FUeaakQ5b%2FkyyaDsL3ScyT5yUzICBR0xIp%2B0HRLVkxG9t2BW1%2FGnw78SYUZKZT2a0c01d5rzvXDH9VFfYDANG6oep%2FAmDOhVLI3qG8MYVKnyVKK2%2F3VIl%2BEOIYPxbGasJWp7vredxtCEQfbzQI8D9DfbizYxSRuxmcU%2B%2BmLhGWdyD7YgrOSQvFkwIDAQAB-----END%20PUBLIC%20KEY-----"\n')])])]),a("p",[e._v("Note: This type of query becomes more difficult to perform as URL encoding and particular use of quotes becomes more important. Particularly advanced queries almost necessitate the use of the POST form.")]),e._v(" "),a("h3",{attrs:{id:"combining-search-criteria"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#combining-search-criteria"}},[e._v("#")]),e._v(" Combining Search Criteria")]),e._v(" "),a("p",[e._v("This query searches for frameworks with “Skills” in the name.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=@type:Framework AND name:Skills")])]),e._v(" "),a("p",[e._v("Also allowed are "),a("strong",[e._v("Parentheses")]),e._v(" and the "),a("strong",[e._v("OR")]),e._v(" keyword.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{707:function(e,a,s){"use strict";s.r(a);var t=s(69),r=Object(t.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"search"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search"}},[e._v("#")]),e._v(" Search")]),e._v(" "),a("h2",{attrs:{id:"basics"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#basics"}},[e._v("#")]),e._v(" Basics")]),e._v(" "),a("p",[e._v("CASS uses "),a("a",{attrs:{href:"https://logz.io/blog/elasticsearch-queries/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ElasticSearch Simple Query String"),a("OutboundLink")],1),e._v(" with several optional parameters as its search mechanism.")]),e._v(" "),a("p",[e._v("The best way to experience this is via a web browser. Optionally, an HTTP request tool like PostMan or curl would also be sufficient.")]),e._v(" "),a("p",[e._v("The search endpoint is typically at the following URL:")]),e._v(" "),a("p",[a("code",[e._v("http(s?):///api/data")])]),e._v(" "),a("p",[e._v("e.g.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data")])]),e._v(" "),a("p",[e._v("The search allows two forms of querying and providing data: a URL query string and via an HTTP POST request.")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("The query string basic form is show below (the search is ‘*’, or everything):\n"),a("code",[e._v("https://dev.cassproject.org/api/data?q=*")])]),e._v(" "),a("ul",[a("li",[e._v("Optional parameters include:\n"),a("ul",[a("li",[e._v("Size, the size of the response.\n"),a("code",[e._v("https://dev.cassproject.org/api/data?size=100&q=*")])]),e._v(" "),a("li",[e._v("Start, used for paging.\n"),a("code",[e._v("https://dev.cassproject.org/api/data?start=50&q=*")])])])]),e._v(" "),a("li",[a("em",[e._v("Note: This may be used as part of a GET or POST when including a signature sheet.")])])])]),e._v(" "),a("li",[a("p",[e._v("The POST method requires a multi part post containing a JSON Object named ‘searchParams’. This can be useful to avoid issues with URL query string encoding.")]),e._v(" "),a("ul",[a("li",[e._v("General format:"),a("div",{staticClass:"language-http extra-class"},[a("pre",{pre:!0,attrs:{class:"language-http"}},[a("code",[a("span",{pre:!0,attrs:{class:"token header"}},[a("span",{pre:!0,attrs:{class:"token header-name keyword"}},[e._v("https")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(":")]),a("span",{pre:!0,attrs:{class:"token header-value"}},[e._v("//dev.cassproject.org/api/data")])]),e._v('\n{\n "key": val,\n ...\n}\n')])])])]),e._v(" "),a("li",[e._v("The query appears in the ‘q’ field of the ‘searchParams’ object."),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"q"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v('"*"')]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])]),e._v(" "),a("li",[e._v("Optional parameters include:\n"),a("ul",[a("li",[e._v("Size, the size of the response.")])]),e._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"q"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v('"*"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"size"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])]),e._v(" "),a("li",[e._v("Start, used for paging."),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"q"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v('"*"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[e._v('"start"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[e._v("50")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])])])])])]),e._v(" "),a("h2",{attrs:{id:"common-queries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-queries"}},[e._v("#")]),e._v(" Common Queries")]),e._v(" "),a("p",[e._v("There are a number of common queries that are useful in the practice of using CASS.")]),e._v(" "),a("h3",{attrs:{id:"search-everything"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-everything"}},[e._v("#")]),e._v(" Search everything")]),e._v(" "),a("p",[e._v("This query searches all fields for any distinct word ‘tool’. Note that plural forms will also be returned.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=tool")])]),e._v(" "),a("h3",{attrs:{id:"search-by-a-field"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-by-a-field"}},[e._v("#")]),e._v(" Search by a field.")]),e._v(" "),a("p",[e._v("This query searches for a string inside a field.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=name:tool")])]),e._v(" "),a("h3",{attrs:{id:"search-by-a-partial-field"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-by-a-partial-field"}},[e._v("#")]),e._v(" Search by a partial field.")]),e._v(" "),a("p",[e._v("This query searches for a string inside a field.")]),e._v(" "),a("p",[a("code",[e._v('https://dev.cassproject.org/api/data?q=name:"Workplace Readiness Skills"')])]),e._v(" "),a("h3",{attrs:{id:"search-for-records-of-a-certain-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-for-records-of-a-certain-type"}},[e._v("#")]),e._v(" Search for records of a certain type.")]),e._v(" "),a("p",[e._v("This query searches for competencies.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=@type:Competency")])]),e._v(" "),a("p",[e._v("or")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data/schema.cassproject.org.0.2.Competency?q=*")])]),e._v(" "),a("h3",{attrs:{id:"search-for-records-by-owner-identifier"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#search-for-records-by-owner-identifier"}},[e._v("#")]),e._v(" Search for records by owner identifier.")]),e._v(" "),a("p",[e._v("This query searches for records owned by a particular individual.")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('https://dev.cassproject.org/api/data?q=@owner:"-----BEGIN%20PUBLIC%20KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl5Zsr3KlThU%2BOGbkT%2BLd24j0u2AUMnh7YU7%2B%2FPiKzJaR%2Fzv06RFALl%2Bm2kmNXFgnsIZQeE4OvHWXptJsghIlrL36NbQwrpknXglqQ9dPHIKrdlvnSvvPvWSBcs%2BO2eKJg4A2wSjx5Ls6lJRijRLlIwRC%2FSD8tx%2FUeaakQ5b%2FkyyaDsL3ScyT5yUzICBR0xIp%2B0HRLVkxG9t2BW1%2FGnw78SYUZKZT2a0c01d5rzvXDH9VFfYDANG6oep%2FAmDOhVLI3qG8MYVKnyVKK2%2F3VIl%2BEOIYPxbGasJWp7vredxtCEQfbzQI8D9DfbizYxSRuxmcU%2B%2BmLhGWdyD7YgrOSQvFkwIDAQAB-----END%20PUBLIC%20KEY-----"\n')])])]),a("p",[e._v("Note: This type of query becomes more difficult to perform as URL encoding and particular use of quotes becomes more important. Particularly advanced queries almost necessitate the use of the POST form.")]),e._v(" "),a("h3",{attrs:{id:"combining-search-criteria"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#combining-search-criteria"}},[e._v("#")]),e._v(" Combining Search Criteria")]),e._v(" "),a("p",[e._v("This query searches for frameworks with “Skills” in the name.")]),e._v(" "),a("p",[a("code",[e._v("https://dev.cassproject.org/api/data?q=@type:Framework AND name:Skills")])]),e._v(" "),a("p",[e._v("Also allowed are "),a("strong",[e._v("Parentheses")]),e._v(" and the "),a("strong",[e._v("OR")]),e._v(" keyword.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/84.13eb7e36.js.gz b/docs/assets/js/84.2fa86581.js.gz similarity index 96% rename from docs/assets/js/84.13eb7e36.js.gz rename to docs/assets/js/84.2fa86581.js.gz index 1a453c1dc..4e2f6eb6f 100644 Binary files a/docs/assets/js/84.13eb7e36.js.gz and b/docs/assets/js/84.2fa86581.js.gz differ diff --git a/docs/assets/js/85.af647b49.js.gz b/docs/assets/js/85.af647b49.js.gz deleted file mode 100644 index e99f40826..000000000 Binary files a/docs/assets/js/85.af647b49.js.gz and /dev/null differ diff --git a/docs/assets/js/85.af647b49.js b/docs/assets/js/85.db6f3f39.js similarity index 99% rename from docs/assets/js/85.af647b49.js rename to docs/assets/js/85.db6f3f39.js index da1774bae..45ab82fc8 100644 --- a/docs/assets/js/85.af647b49.js +++ b/docs/assets/js/85.db6f3f39.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{707:function(t,e,a){"use strict";a.r(e);var r=a(69),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"url-s-linked-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#url-s-linked-data"}},[t._v("#")]),t._v(" URL's, Linked Data")]),t._v(" "),e("p",[t._v("Here, we'll talk about URL principles and how to use them along with linked data.")]),t._v(" "),e("p",[t._v("The construction of URLs for linked data is an important communicator of:")]),t._v(" "),e("ul",[e("li",[t._v("Security ("),e("em",[t._v("e.g. https vs http")]),t._v(")")]),t._v(" "),e("li",[t._v("Provenance ("),e("em",[t._v("e.g. hostname")]),t._v(")")]),t._v(" "),e("li",[t._v("Categorical Information ("),e("em",[t._v("e.g. type")]),t._v(")")]),t._v(" "),e("li",[t._v("Canonical Identifiers, if any")])]),t._v(" "),e("h2",{attrs:{id:"cass-url-anatomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-url-anatomy"}},[t._v("#")]),t._v(" CaSS URL Anatomy")]),t._v(" "),e("p",[t._v("First, let’s break down the anatomy of an automatically generated URL of a framework.")]),t._v(" "),e("p",[e("strong",[t._v("URL")])]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("https://dev.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/76ffff33-bd15-4bf3-a007-4ce247d2216d/1495040497868\n")])])]),e("p",[e("strong",[t._v("Anatomy")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"center"}}),t._v(" "),e("th",[e("strong",[t._v("Text")])])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Protocol")])]),t._v(" "),e("td",[t._v("https://")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Hostname")])]),t._v(" "),e("td",[t._v("dev.cassproject.org")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Endpoint")])]),t._v(" "),e("td",[t._v("/api/custom")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Request")])]),t._v(" "),e("td",[t._v("/data")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Type")])]),t._v(" "),e("td",[t._v("/schema.cassproject.org.0.2.Framework")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Identifier")])]),t._v(" "),e("td",[t._v("/76ffff33-bd15-4bf3-a007-4ce247d2216d")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Version")])]),t._v(" "),e("td",[t._v("/1495040497868")])])])]),t._v(" "),e("h3",{attrs:{id:"protocol"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#protocol"}},[t._v("#")]),t._v(" Protocol")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Denotes the protocol used to get the resource")]),t._v(" "),e("li",[t._v("Indicates to the user whether the resource is being securely transmitted\n"),e("ul",[e("li",[t._v("Notionally prevents Man in the Middle Attacks (may or may not be true)")])])])]),t._v(" "),e("h3",{attrs:{id:"hostname"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hostname"}},[t._v("#")]),t._v(" Hostname")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Denotes the owner of the endpoint that is holding the resource")]),t._v(" "),e("li",[t._v("Denotes the authority of the endpoint that is holding the resource")])]),t._v(" "),e("h3",{attrs:{id:"endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#endpoint"}},[t._v("#")]),t._v(" Endpoint")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Indicates an endpoint to request data from that can provide other services")]),t._v(" "),e("li",[t._v("May be shortened to "),e("code",[t._v("/api")]),t._v(" with no repercussions ("),e("em",[t._v("version 0.3+")]),t._v(")")])]),t._v(" "),e("h3",{attrs:{id:"request"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#request"}},[t._v("#")]),t._v(" Request")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Indicates the service desired\n"),e("ul",[e("li",[t._v("In this case, ‘give me the data for’")])])]),t._v(" "),e("li",[t._v("Alternatives include adapters that transform the data to another format and schema\n"),e("ul",[e("li",[t._v("Options include:\n"),e("ul",[e("li",[e("code",[t._v("/asn")]),t._v(" - "),e("em",[t._v("Converts the framework to an Achievement Standards Network, or ASN format")])])])])])])]),t._v(" "),e("h3",{attrs:{id:"type"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" Type")]),t._v(" "),e("ul",[e("li",[t._v("Indicates the type of the object")]),t._v(" "),e("li",[t._v("Accelerates lookup")]),t._v(" "),e("li",[t._v("Nice-to-have in situations where you want the URL to distinguish between types of objects")])]),t._v(" "),e("h3",{attrs:{id:"identifier"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#identifier"}},[t._v("#")]),t._v(" Identifier")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Requires at least one non-numeric character (to distinguish from the version)")]),t._v(" "),e("li",[t._v("Unique")]),t._v(" "),e("li",[t._v("May be canonical ("),e("em",[t._v("e.g. onet:1.1, my_competency")]),t._v(")")]),t._v(" "),e("li",[t._v("URN's work well here")])]),t._v(" "),e("h3",{attrs:{id:"version"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#version"}},[t._v("#")]),t._v(" Version")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required for saving")]),t._v(", not required for lookup")]),t._v(" "),e("li",[t._v("If specified, retrieves specific version of the object")]),t._v(" "),e("li",[t._v("If not specified, retrieves latest version of the object")]),t._v(" "),e("li",[t._v("If object is deleted and specified, will retrieve specific version of the object")])]),t._v(" "),e("h2",{attrs:{id:"important-notes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#important-notes"}},[t._v("#")]),t._v(" Important Notes")]),t._v(" "),e("ul",[e("li",[t._v("The holder of the data (indicated by the hostname) may not be the owner of the data. Many organizations and individuals rely on third parties to store data.")]),t._v(" "),e("li",[t._v("Many web browsers and tools require situationally require data to be available via secure (HTTPS) protocols. Providers such as LetsEncrypt provide cheap and easy methods of getting certificates to enable this capability.")])]),t._v(" "),e("h2",{attrs:{id:"shortening"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shortening"}},[t._v("#")]),t._v(" Shortening")]),t._v(" "),e("p",[t._v("When creating persistent URLs for display or use, shorter is often better. Omitting the Type & Version, and shortening the Endpoint, can reduce a URL from")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("https://dev.cassproject.org/api/data/schema.cassproject.org.0.3.Framework/dbbdc47e-a2d8-414f-8cd9-09052843bb6f/1504206795716\n")])])]),e("p",[t._v("to")]),t._v(" "),e("p",[e("code",[t._v("https://dev.cassproject.org/api/data/dbbdc47e-a2d8-414f-8cd9-09052843bb6f")])]),t._v(" "),e("p",[t._v("without any degradation in behavior.")]),t._v(" "),e("h2",{attrs:{id:"data-registration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-registration"}},[t._v("#")]),t._v(" Data Registration")]),t._v(" "),e("p",[t._v("Situations arise that data held elsewhere and owned by others be discoverable.")]),t._v(" "),e("p",[t._v("CaSS supports Data Registration, where JSON-LD data from other servers is POSTed to a CASS repository without the modification of its "),e("code",[t._v("@id")]),t._v(" url. This data will be discoverable via search, but the registered data is not considered to be homed on the repository.")]),t._v(" "),e("ul",[e("li",[t._v("This feature facilitates the aggregation of remote data onto servers for discovery purposes.")]),t._v(" "),e("li",[t._v("Harvesting and maintenance features are not yet available.")]),t._v(" "),e("li",[t._v("This feature is experimental.")]),t._v(" "),e("li",[t._v("CaSS Libraries will attempt to retrieve registered data from a CaSS repository if it is not available from the source.\n"),e("ul",[e("li",[t._v("This is particularly useful when URL's are being used as URI's but do not home the data.")])])])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{709:function(t,e,a){"use strict";a.r(e);var r=a(69),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"url-s-linked-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#url-s-linked-data"}},[t._v("#")]),t._v(" URL's, Linked Data")]),t._v(" "),e("p",[t._v("Here, we'll talk about URL principles and how to use them along with linked data.")]),t._v(" "),e("p",[t._v("The construction of URLs for linked data is an important communicator of:")]),t._v(" "),e("ul",[e("li",[t._v("Security ("),e("em",[t._v("e.g. https vs http")]),t._v(")")]),t._v(" "),e("li",[t._v("Provenance ("),e("em",[t._v("e.g. hostname")]),t._v(")")]),t._v(" "),e("li",[t._v("Categorical Information ("),e("em",[t._v("e.g. type")]),t._v(")")]),t._v(" "),e("li",[t._v("Canonical Identifiers, if any")])]),t._v(" "),e("h2",{attrs:{id:"cass-url-anatomy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cass-url-anatomy"}},[t._v("#")]),t._v(" CaSS URL Anatomy")]),t._v(" "),e("p",[t._v("First, let’s break down the anatomy of an automatically generated URL of a framework.")]),t._v(" "),e("p",[e("strong",[t._v("URL")])]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("https://dev.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/76ffff33-bd15-4bf3-a007-4ce247d2216d/1495040497868\n")])])]),e("p",[e("strong",[t._v("Anatomy")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"center"}}),t._v(" "),e("th",[e("strong",[t._v("Text")])])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Protocol")])]),t._v(" "),e("td",[t._v("https://")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Hostname")])]),t._v(" "),e("td",[t._v("dev.cassproject.org")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Endpoint")])]),t._v(" "),e("td",[t._v("/api/custom")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Request")])]),t._v(" "),e("td",[t._v("/data")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Type")])]),t._v(" "),e("td",[t._v("/schema.cassproject.org.0.2.Framework")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Identifier")])]),t._v(" "),e("td",[t._v("/76ffff33-bd15-4bf3-a007-4ce247d2216d")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"center"}},[e("strong",[t._v("Version")])]),t._v(" "),e("td",[t._v("/1495040497868")])])])]),t._v(" "),e("h3",{attrs:{id:"protocol"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#protocol"}},[t._v("#")]),t._v(" Protocol")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Denotes the protocol used to get the resource")]),t._v(" "),e("li",[t._v("Indicates to the user whether the resource is being securely transmitted\n"),e("ul",[e("li",[t._v("Notionally prevents Man in the Middle Attacks (may or may not be true)")])])])]),t._v(" "),e("h3",{attrs:{id:"hostname"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hostname"}},[t._v("#")]),t._v(" Hostname")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Denotes the owner of the endpoint that is holding the resource")]),t._v(" "),e("li",[t._v("Denotes the authority of the endpoint that is holding the resource")])]),t._v(" "),e("h3",{attrs:{id:"endpoint"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#endpoint"}},[t._v("#")]),t._v(" Endpoint")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Indicates an endpoint to request data from that can provide other services")]),t._v(" "),e("li",[t._v("May be shortened to "),e("code",[t._v("/api")]),t._v(" with no repercussions ("),e("em",[t._v("version 0.3+")]),t._v(")")])]),t._v(" "),e("h3",{attrs:{id:"request"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#request"}},[t._v("#")]),t._v(" Request")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Indicates the service desired\n"),e("ul",[e("li",[t._v("In this case, ‘give me the data for’")])])]),t._v(" "),e("li",[t._v("Alternatives include adapters that transform the data to another format and schema\n"),e("ul",[e("li",[t._v("Options include:\n"),e("ul",[e("li",[e("code",[t._v("/asn")]),t._v(" - "),e("em",[t._v("Converts the framework to an Achievement Standards Network, or ASN format")])])])])])])]),t._v(" "),e("h3",{attrs:{id:"type"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" Type")]),t._v(" "),e("ul",[e("li",[t._v("Indicates the type of the object")]),t._v(" "),e("li",[t._v("Accelerates lookup")]),t._v(" "),e("li",[t._v("Nice-to-have in situations where you want the URL to distinguish between types of objects")])]),t._v(" "),e("h3",{attrs:{id:"identifier"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#identifier"}},[t._v("#")]),t._v(" Identifier")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required")])]),t._v(" "),e("li",[t._v("Requires at least one non-numeric character (to distinguish from the version)")]),t._v(" "),e("li",[t._v("Unique")]),t._v(" "),e("li",[t._v("May be canonical ("),e("em",[t._v("e.g. onet:1.1, my_competency")]),t._v(")")]),t._v(" "),e("li",[t._v("URN's work well here")])]),t._v(" "),e("h3",{attrs:{id:"version"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#version"}},[t._v("#")]),t._v(" Version")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("Required for saving")]),t._v(", not required for lookup")]),t._v(" "),e("li",[t._v("If specified, retrieves specific version of the object")]),t._v(" "),e("li",[t._v("If not specified, retrieves latest version of the object")]),t._v(" "),e("li",[t._v("If object is deleted and specified, will retrieve specific version of the object")])]),t._v(" "),e("h2",{attrs:{id:"important-notes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#important-notes"}},[t._v("#")]),t._v(" Important Notes")]),t._v(" "),e("ul",[e("li",[t._v("The holder of the data (indicated by the hostname) may not be the owner of the data. Many organizations and individuals rely on third parties to store data.")]),t._v(" "),e("li",[t._v("Many web browsers and tools require situationally require data to be available via secure (HTTPS) protocols. Providers such as LetsEncrypt provide cheap and easy methods of getting certificates to enable this capability.")])]),t._v(" "),e("h2",{attrs:{id:"shortening"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shortening"}},[t._v("#")]),t._v(" Shortening")]),t._v(" "),e("p",[t._v("When creating persistent URLs for display or use, shorter is often better. Omitting the Type & Version, and shortening the Endpoint, can reduce a URL from")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("https://dev.cassproject.org/api/data/schema.cassproject.org.0.3.Framework/dbbdc47e-a2d8-414f-8cd9-09052843bb6f/1504206795716\n")])])]),e("p",[t._v("to")]),t._v(" "),e("p",[e("code",[t._v("https://dev.cassproject.org/api/data/dbbdc47e-a2d8-414f-8cd9-09052843bb6f")])]),t._v(" "),e("p",[t._v("without any degradation in behavior.")]),t._v(" "),e("h2",{attrs:{id:"data-registration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-registration"}},[t._v("#")]),t._v(" Data Registration")]),t._v(" "),e("p",[t._v("Situations arise that data held elsewhere and owned by others be discoverable.")]),t._v(" "),e("p",[t._v("CaSS supports Data Registration, where JSON-LD data from other servers is POSTed to a CASS repository without the modification of its "),e("code",[t._v("@id")]),t._v(" url. This data will be discoverable via search, but the registered data is not considered to be homed on the repository.")]),t._v(" "),e("ul",[e("li",[t._v("This feature facilitates the aggregation of remote data onto servers for discovery purposes.")]),t._v(" "),e("li",[t._v("Harvesting and maintenance features are not yet available.")]),t._v(" "),e("li",[t._v("This feature is experimental.")]),t._v(" "),e("li",[t._v("CaSS Libraries will attempt to retrieve registered data from a CaSS repository if it is not available from the source.\n"),e("ul",[e("li",[t._v("This is particularly useful when URL's are being used as URI's but do not home the data.")])])])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/85.db6f3f39.js.gz b/docs/assets/js/85.db6f3f39.js.gz new file mode 100644 index 000000000..162959b2a Binary files /dev/null and b/docs/assets/js/85.db6f3f39.js.gz differ diff --git a/docs/assets/js/86.85556432.js.gz b/docs/assets/js/86.85556432.js.gz deleted file mode 100644 index 265d06d13..000000000 Binary files a/docs/assets/js/86.85556432.js.gz and /dev/null differ diff --git a/docs/assets/js/86.85556432.js b/docs/assets/js/86.d373c6ef.js similarity index 99% rename from docs/assets/js/86.85556432.js rename to docs/assets/js/86.d373c6ef.js index 4d8655b10..3915e0a2e 100644 --- a/docs/assets/js/86.85556432.js +++ b/docs/assets/js/86.d373c6ef.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{711:function(e,t,r){"use strict";r.r(t);var a=r(69),s=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"links-and-references"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#links-and-references"}},[e._v("#")]),e._v(" Links and References")]),e._v(" "),t("h2",{attrs:{id:"github"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#github"}},[e._v("#")]),e._v(" GitHub")]),e._v(" "),t("p",[e._v("Most CaSS-related tools will be found on our organization's "),t("a",{attrs:{href:"https://github.com/cassproject",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("CaSS itself can be located in this "),t("a",{attrs:{href:"https://github.com/cassproject/CASS",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Repo"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"cass-installation-bash-script"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-installation-bash-script"}},[e._v("#")]),e._v(" CaSS Installation Bash Script")]),e._v(" "),t("p",[e._v("An installation script for Linux systems can be found "),t("a",{attrs:{href:"https://raw.githubusercontent.com/cassproject/CASS/master/scripts/cassInstall.sh",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". Check out the Installation guide for more help.")]),e._v(" "),t("h2",{attrs:{id:"cass-project-website"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-project-website"}},[e._v("#")]),e._v(" CaSS Project Website")]),e._v(" "),t("p",[e._v("The primary CaSS website may be found at:")]),e._v(" "),t("p",[t("a",{attrs:{href:"http://cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("cassproject.org"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"cass-library-api"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-library-api"}},[e._v("#")]),e._v(" CaSS Library API")]),e._v(" "),t("p",[e._v("The CaSS Library API allows you to work with data within a CaSS instance. It's highly recommended to use Node.js along with our NPM package.")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/cass-npm",target:"_blank",rel:"noopener noreferrer"}},[e._v("NPM"),t("OutboundLink")],1),e._v("\n| "),t("a",{attrs:{href:"https://github.com/cassproject/CASS/tree/master/src/main/js/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v("\n| "),t("a",{attrs:{href:"https://cdn.jsdelivr.net/gh/cassproject/cass@master/src/main/js/cass.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("CDN"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/modules/org.cassproject.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Documentation"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"cass-schema"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-schema"}},[e._v("#")]),e._v(" CaSS Schema")]),e._v(" "),t("p",[e._v("A 'schema' describes the organization/structure of a set of data.")]),e._v(" "),t("p",[e._v("The schema for CaSS objects is documented "),t("a",{attrs:{href:"http://schema.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(", listing the data associated with each CaSS object. CaSS is built upon the pre-existing work done at "),t("a",{attrs:{href:"https://schema.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema.org"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"sandbox"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sandbox"}},[e._v("#")]),e._v(" Sandbox")]),e._v(" "),t("p",[e._v("The sandbox is a public site hosting a CaSS instance where you may try CaSS without setting up a CaSS instance yourself, along with a CaSS Editor for easy viewing and editting. There are two sandboxes:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://sandbox.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Latest stable version"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://dev.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Latest unstable version"),t("OutboundLink")],1)])]),e._v(" "),t("h2",{attrs:{id:"other-learning-resources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-learning-resources"}},[e._v("#")]),e._v(" Other Learning Resources")]),e._v(" "),t("p",[e._v("The following links are helpful resources for already-existing tools that CaSS utilizes, written by others:")]),e._v(" "),t("ul",[t("li",[e._v("ElasticSearch Simple Query String\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://www.elastic.co/guide/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Documentation"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.elastic.co/guide/en/elasticsearch/reference/5.6/query-dsl-simple-query-string-query.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tutorial 1"),t("OutboundLink")],1),e._v("\n| "),t("a",{attrs:{href:"https://logz.io/blog/elasticsearch-queries/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tutorial 2"),t("OutboundLink")],1)])])]),e._v(" "),t("li",[e._v("JSON-LD\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://json-ld.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Website"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.linkeddatatools.com/introduction-json-ld",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tutorial"),t("OutboundLink")],1)])])])]),e._v(" "),t("h2",{attrs:{id:"contact-us"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contact-us"}},[e._v("#")]),e._v(" Contact Us")]),e._v(" "),t("p",[e._v("Request access to the "),t("a",{attrs:{href:"https://docs.google.com/a/eduworks.com/forms/viewform?bc=transparent&embedded=true&f=Arial%252C%2BVerdana%252C%2Bsans-serif&hl=en&htc=%2523666666&id=1BMaboapV0IaS8iGnCJut2obPZ9y3CWkxXuvy-7krcgE&lc=%2523003965&pli=1&tc=%2523444444&ttl=0",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Slack Channel"),t("OutboundLink")],1),e._v(" to join the conversation.")]),e._v(" "),t("p",[e._v("You may also "),t("a",{attrs:{href:"mailto:cass@eduworks.com"}},[e._v("email us")]),e._v(".")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{708:function(e,t,r){"use strict";r.r(t);var a=r(69),s=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"links-and-references"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#links-and-references"}},[e._v("#")]),e._v(" Links and References")]),e._v(" "),t("h2",{attrs:{id:"github"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#github"}},[e._v("#")]),e._v(" GitHub")]),e._v(" "),t("p",[e._v("Most CaSS-related tools will be found on our organization's "),t("a",{attrs:{href:"https://github.com/cassproject",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("CaSS itself can be located in this "),t("a",{attrs:{href:"https://github.com/cassproject/CASS",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Repo"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"cass-installation-bash-script"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-installation-bash-script"}},[e._v("#")]),e._v(" CaSS Installation Bash Script")]),e._v(" "),t("p",[e._v("An installation script for Linux systems can be found "),t("a",{attrs:{href:"https://raw.githubusercontent.com/cassproject/CASS/master/scripts/cassInstall.sh",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". Check out the Installation guide for more help.")]),e._v(" "),t("h2",{attrs:{id:"cass-project-website"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-project-website"}},[e._v("#")]),e._v(" CaSS Project Website")]),e._v(" "),t("p",[e._v("The primary CaSS website may be found at:")]),e._v(" "),t("p",[t("a",{attrs:{href:"http://cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("cassproject.org"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"cass-library-api"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-library-api"}},[e._v("#")]),e._v(" CaSS Library API")]),e._v(" "),t("p",[e._v("The CaSS Library API allows you to work with data within a CaSS instance. It's highly recommended to use Node.js along with our NPM package.")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/cass-npm",target:"_blank",rel:"noopener noreferrer"}},[e._v("NPM"),t("OutboundLink")],1),e._v("\n| "),t("a",{attrs:{href:"https://github.com/cassproject/CASS/tree/master/src/main/js/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v("\n| "),t("a",{attrs:{href:"https://cdn.jsdelivr.net/gh/cassproject/cass@master/src/main/js/cass.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("CDN"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://cassproject.github.io/CASS/docs/modules/org.cassproject.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Documentation"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"cass-schema"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-schema"}},[e._v("#")]),e._v(" CaSS Schema")]),e._v(" "),t("p",[e._v("A 'schema' describes the organization/structure of a set of data.")]),e._v(" "),t("p",[e._v("The schema for CaSS objects is documented "),t("a",{attrs:{href:"http://schema.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(", listing the data associated with each CaSS object. CaSS is built upon the pre-existing work done at "),t("a",{attrs:{href:"https://schema.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema.org"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"sandbox"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sandbox"}},[e._v("#")]),e._v(" Sandbox")]),e._v(" "),t("p",[e._v("The sandbox is a public site hosting a CaSS instance where you may try CaSS without setting up a CaSS instance yourself, along with a CaSS Editor for easy viewing and editting. There are two sandboxes:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://sandbox.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Latest stable version"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://dev.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Latest unstable version"),t("OutboundLink")],1)])]),e._v(" "),t("h2",{attrs:{id:"other-learning-resources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-learning-resources"}},[e._v("#")]),e._v(" Other Learning Resources")]),e._v(" "),t("p",[e._v("The following links are helpful resources for already-existing tools that CaSS utilizes, written by others:")]),e._v(" "),t("ul",[t("li",[e._v("ElasticSearch Simple Query String\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://www.elastic.co/guide/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Documentation"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.elastic.co/guide/en/elasticsearch/reference/5.6/query-dsl-simple-query-string-query.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tutorial 1"),t("OutboundLink")],1),e._v("\n| "),t("a",{attrs:{href:"https://logz.io/blog/elasticsearch-queries/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tutorial 2"),t("OutboundLink")],1)])])]),e._v(" "),t("li",[e._v("JSON-LD\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://json-ld.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Website"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.linkeddatatools.com/introduction-json-ld",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tutorial"),t("OutboundLink")],1)])])])]),e._v(" "),t("h2",{attrs:{id:"contact-us"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contact-us"}},[e._v("#")]),e._v(" Contact Us")]),e._v(" "),t("p",[e._v("Request access to the "),t("a",{attrs:{href:"https://docs.google.com/a/eduworks.com/forms/viewform?bc=transparent&embedded=true&f=Arial%252C%2BVerdana%252C%2Bsans-serif&hl=en&htc=%2523666666&id=1BMaboapV0IaS8iGnCJut2obPZ9y3CWkxXuvy-7krcgE&lc=%2523003965&pli=1&tc=%2523444444&ttl=0",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Slack Channel"),t("OutboundLink")],1),e._v(" to join the conversation.")]),e._v(" "),t("p",[e._v("You may also "),t("a",{attrs:{href:"mailto:cass@eduworks.com"}},[e._v("email us")]),e._v(".")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/86.d373c6ef.js.gz b/docs/assets/js/86.d373c6ef.js.gz new file mode 100644 index 000000000..be5e17739 Binary files /dev/null and b/docs/assets/js/86.d373c6ef.js.gz differ diff --git a/docs/assets/js/87.13ca414d.js.gz b/docs/assets/js/87.13ca414d.js.gz deleted file mode 100644 index ddb715710..000000000 Binary files a/docs/assets/js/87.13ca414d.js.gz and /dev/null differ diff --git a/docs/assets/js/87.13ca414d.js b/docs/assets/js/87.9b037418.js similarity index 99% rename from docs/assets/js/87.13ca414d.js rename to docs/assets/js/87.9b037418.js index e6f449151..d6d7c0fd4 100644 --- a/docs/assets/js/87.13ca414d.js +++ b/docs/assets/js/87.9b037418.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{709:function(e,t,r){"use strict";r.r(t);var a=r(69),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overview"}},[e._v("#")]),e._v(" Overview")]),e._v(" "),t("p",[e._v("The CASS Project encompasses a ground-to-cloud effort to build an open source system for managing and tracking human competence and competencies using Permissible "),t("a",{attrs:{href:"https://www.w3.org/standards/semanticweb/data",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Linked Data"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Data")]),e._v(" - CASS is data driven. There are very few Web Service APIs. Most of the functionality is located in the CASS Javascript Library. CASS data is stored in a repository similar to a "),t("a",{attrs:{href:"https://hostingdata.co.uk/nosql-database/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NoSQL"),t("OutboundLink")],1),e._v(" database.")]),e._v(" "),t("li",[t("strong",[e._v("Linked")]),e._v(" - CASS objects use URLs as IDs. References to these objects can be made by using the object’s ID/URL. Because of the nature of URLs, CASS objects can be uniquely identified across the globe.")]),e._v(" "),t("li",[t("strong",[e._v("Open")]),e._v(" - By default, all CASS data is public. Firewalls, whitelists, and other means are available to prevent this.")]),e._v(" "),t("li",[t("strong",[e._v("Permissible")]),e._v(" - CASS objects are permissioned through use of Public Key Infrastructure. Entities (systems, users, apps) are identified by independently verifiable, signed, public keys. Read permission is controlled via the use of encryption.")])]),e._v(" "),t("h2",{attrs:{id:"technologies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#technologies"}},[e._v("#")]),e._v(" Technologies")]),e._v(" "),t("h3",{attrs:{id:"client-side-reference-implementation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#client-side-reference-implementation"}},[e._v("#")]),e._v(" Client-Side (Reference Implementation)")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/cass-editor",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Authoring Tool"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/CASS/tree/master/src/main/js/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Javascript Library"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue.js"),t("OutboundLink")],1)])])])]),e._v(" "),t("h3",{attrs:{id:"server-side"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#server-side"}},[e._v("#")]),e._v(" Server-Side")]),e._v(" "),t("ul",[t("li",[e._v("[Node Process, managed by PM2] ("),t("a",{attrs:{href:"https://pm2.keymetrics.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PM2"),t("OutboundLink")],1),e._v(" on port 8080)\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/cass-npm",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Javascript Library"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("[CaSS Repository] (https://github.com/cassproject/CASS)")])])])]),e._v(" "),t("h2",{attrs:{id:"data-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-model"}},[e._v("#")]),e._v(" Data Model")]),e._v(" "),t("p",[e._v("The CaSS schema is available "),t("a",{attrs:{href:"http://schema.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"cass-javascript-library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-javascript-library"}},[e._v("#")]),e._v(" CaSS Javascript Library")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://github.com/cassproject/cass-npm",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Javascript Library"),t("OutboundLink")],1),e._v(" is the easiest way to work with CaSS. It provides the code necessary to utilize all CaSS objects (not strictly necessary in very simple cases).")]),e._v(" "),t("h3",{attrs:{id:"cass-repository-skyrepo"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-repository-skyrepo"}},[e._v("#")]),e._v(" CaSS Repository (SkyRepo)")]),e._v(" "),t("p",[e._v("The CaSS Repository is a "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Representational_state_transfer",target:"_blank",rel:"noopener noreferrer"}},[e._v("REST"),t("OutboundLink")],1),e._v(" based "),t("a",{attrs:{href:"https://json-ld.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JSON-LD"),t("OutboundLink")],1),e._v(" object store with "),t("em",[e._v("CRUD")]),e._v(", "),t("em",[e._v("Search")]),e._v(", "),t("em",[e._v("Permissioning")]),e._v(", and "),t("em",[e._v("Basic")]),e._v(" Identity Management functionality. It includes an extensible plugin infrastructure.")]),e._v(" "),t("ul",[t("li",[e._v("SkyRepo attempts to follow RESTful HTTP best practices.\n"),t("ul",[t("li",[e._v("The "),t("code",[e._v("GET")]),e._v(" operation is used to perform a "),t("strong",[e._v("READ")])]),e._v(" "),t("li",[e._v("The "),t("code",[e._v("POST")]),e._v(" and "),t("code",[e._v("PUT")]),e._v(" operations will "),t("strong",[e._v("CREATE")]),e._v(" or "),t("strong",[e._v("UPDATE")]),e._v(" an object")]),e._v(" "),t("li",[e._v("The "),t("code",[e._v("DELETE")]),e._v(" operation will "),t("strong",[e._v("DELETE")]),e._v(" an object")])])]),e._v(" "),t("li",[e._v("Search is available using the "),t("code",[e._v("?q=")]),e._v(" format and follows ElasticSearch Simple Query Strings guidelines.")]),e._v(" "),t("li",[e._v("Permissioning is applied for every query. Authentic requests are validated through the verification of “Signature Sheets” (a form of signed nonce+timestamp token sent with the request). OAuth-based permissioning is currently in development.\n"),t("ul",[t("li",[e._v("Encrypted objects are not returned without a valid signature sheet from an object owner or reader.")]),e._v(" "),t("li",[e._v("Objects, if owned, may not be updated without a valid signature sheet from the current object owner.")]),e._v(" "),t("li",[e._v("Objects, if owned, may not be deleted without a valid signature sheet from the current object owner.")]),e._v(" "),t("li",[e._v("Encrypted objects may be decrypted through use of the private key of one of the owners or readers.")]),e._v(" "),t("li",[e._v("Encrypted objects may be created through the use of a public key of the intended owner.")])])]),e._v(" "),t("li",[e._v("Basic Identity Management is a hashed username and hashed password based store for private keys. By default, CaSS Keys are generated client side and encrypted with a combination of the clear text username and password. As a result, the server owner does not have the capability to manage or recover a user’s keys.")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("We encourage people to use a different identity management system.")])]),e._v(" "),t("h2",{attrs:{id:"looking-around"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#looking-around"}},[e._v("#")]),e._v(" Looking Around")]),e._v(" "),t("p",[e._v("For a more hands-on approach to understanding the specifics of CaSS, we should take a look at some data directly through your browser.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("All data may be accessed by your browser.")])]),e._v(" "),t("ol",[t("li",[e._v("Navigate "),t("a",{attrs:{href:"https://cassproject.github.io/cass-editor/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" in a new tab, open up a framework (like O*NET Expanded) and click the "),t("a",{attrs:{href:"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/ce4c0e41-f24c-407d-95af-047bfee429bf",target:"_blank",rel:"noopener noreferrer"}},[e._v("URL"),t("OutboundLink")],1),e._v(" under the description.")]),e._v(" "),t("li",[e._v("You will then see the JSON-LD representation of the Competency Framework.")]),e._v(" "),t("li",[e._v("Under ‘"),t("em",[e._v("competency")]),e._v("’, there are many URL's. Click one to navigate to that competency.")]),e._v(" "),t("li",[e._v("Here, you will see fields like '"),t("em",[e._v("name")]),e._v("' and '"),t("em",[e._v("description")]),e._v("'. These, as you would expect, are properties of the object according to the schema defined at "),t("code",[e._v("@context")]),e._v(".")]),e._v(" "),t("li",[t("code",[e._v("*@id")]),e._v(", "),t("code",[e._v("@context")]),e._v(", and "),t("code",[e._v("@type")]),e._v(" are properties of the JSON-LD format.")]),e._v(" "),t("li",[t("code",[e._v("@owner")]),e._v(", "),t("code",[e._v("@reader")]),e._v(" (if it exists) and "),t("code",[e._v("@signature")]),e._v(" are properties of the KBAC extension to JSON-LD.")]),e._v(" "),t("li",[e._v("Everything that begins with "),t("code",[e._v("@")]),e._v(" can be thought of to be metadata properties, and everything else is data.")])]),e._v(" "),t("p",[e._v("If you would like to learn more about how JSON-LD works, you can visit "),t("a",{attrs:{href:"http://www.linkeddatatools.com/introduction-json-ld",target:"_blank",rel:"noopener noreferrer"}},[e._v("this tutorial series on Structured Data"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Hopefully, it is easy to imagine how a browser, scripting language, or other server would take advantage of this data. But reading data is of secondary importance to being able to find it. For that, we need search.")]),e._v(" "),t("ol",[t("li",[e._v("Navigate here in a new tab. This performs a search query with the query being "),t("code",[e._v("*")]),e._v(". Using "),t("a",{attrs:{href:"https://logz.io/blog/elasticsearch-queries/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ElasticSearch Simple Query Strings"),t("OutboundLink")],1),e._v(", you can query in quite a few ways.")]),e._v(" "),t("li",[e._v("First, replace "),t("code",[e._v("*")]),e._v(" with "),t("code",[e._v("Addition")]),e._v(". This performs a full text search for "),t("em",[e._v("Addition")]),e._v(" in all fields.")]),e._v(" "),t("li",[e._v("Next, replace "),t("code",[e._v("Addition")]),e._v(" with "),t("code",[e._v("name:Addition")]),e._v(". This requires the term "),t("em",[e._v("Addition")]),e._v(" to appear in the "),t("em",[e._v("name")]),e._v(" field.")]),e._v(" "),t("li",[e._v("Next, replace "),t("code",[e._v("name:Addition")]),e._v(" with "),t("code",[e._v("tract")]),e._v(". This should come up with no results. By default, the search matches words, not strings segments. This can be overridden by using wildcards.")]),e._v(" "),t("li",[e._v("Try "),t("code",[e._v("*tract*")]),e._v(". This should come up with competencies that include terms such as "),t("em",[e._v("subtract")]),e._v(" and "),t("em",[e._v("contraction")]),e._v(".")]),e._v(" "),t("li",[e._v("Now try "),t("code",[e._v("name:*tract* AND description:*tract*")]),e._v(". This will return competencies that have "),t("em",[e._v("tract")]),e._v(" in both the name and description.")])]),e._v(" "),t("p",[e._v("This can be used to construct search queries that filter based on the owner of the object, user search terms, or by type.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{711:function(e,t,r){"use strict";r.r(t);var a=r(69),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"overview"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#overview"}},[e._v("#")]),e._v(" Overview")]),e._v(" "),t("p",[e._v("The CASS Project encompasses a ground-to-cloud effort to build an open source system for managing and tracking human competence and competencies using Permissible "),t("a",{attrs:{href:"https://www.w3.org/standards/semanticweb/data",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Linked Data"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Data")]),e._v(" - CASS is data driven. There are very few Web Service APIs. Most of the functionality is located in the CASS Javascript Library. CASS data is stored in a repository similar to a "),t("a",{attrs:{href:"https://hostingdata.co.uk/nosql-database/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NoSQL"),t("OutboundLink")],1),e._v(" database.")]),e._v(" "),t("li",[t("strong",[e._v("Linked")]),e._v(" - CASS objects use URLs as IDs. References to these objects can be made by using the object’s ID/URL. Because of the nature of URLs, CASS objects can be uniquely identified across the globe.")]),e._v(" "),t("li",[t("strong",[e._v("Open")]),e._v(" - By default, all CASS data is public. Firewalls, whitelists, and other means are available to prevent this.")]),e._v(" "),t("li",[t("strong",[e._v("Permissible")]),e._v(" - CASS objects are permissioned through use of Public Key Infrastructure. Entities (systems, users, apps) are identified by independently verifiable, signed, public keys. Read permission is controlled via the use of encryption.")])]),e._v(" "),t("h2",{attrs:{id:"technologies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#technologies"}},[e._v("#")]),e._v(" Technologies")]),e._v(" "),t("h3",{attrs:{id:"client-side-reference-implementation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#client-side-reference-implementation"}},[e._v("#")]),e._v(" Client-Side (Reference Implementation)")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/cass-editor",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Authoring Tool"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/CASS/tree/master/src/main/js/cass",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Javascript Library"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue.js"),t("OutboundLink")],1)])])])]),e._v(" "),t("h3",{attrs:{id:"server-side"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#server-side"}},[e._v("#")]),e._v(" Server-Side")]),e._v(" "),t("ul",[t("li",[e._v("[Node Process, managed by PM2] ("),t("a",{attrs:{href:"https://pm2.keymetrics.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PM2"),t("OutboundLink")],1),e._v(" on port 8080)\n"),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/cassproject/cass-npm",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Javascript Library"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("[CaSS Repository] (https://github.com/cassproject/CASS)")])])])]),e._v(" "),t("h2",{attrs:{id:"data-model"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-model"}},[e._v("#")]),e._v(" Data Model")]),e._v(" "),t("p",[e._v("The CaSS schema is available "),t("a",{attrs:{href:"http://schema.cassproject.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"cass-javascript-library"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-javascript-library"}},[e._v("#")]),e._v(" CaSS Javascript Library")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://github.com/cassproject/cass-npm",target:"_blank",rel:"noopener noreferrer"}},[e._v("CaSS Javascript Library"),t("OutboundLink")],1),e._v(" is the easiest way to work with CaSS. It provides the code necessary to utilize all CaSS objects (not strictly necessary in very simple cases).")]),e._v(" "),t("h3",{attrs:{id:"cass-repository-skyrepo"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cass-repository-skyrepo"}},[e._v("#")]),e._v(" CaSS Repository (SkyRepo)")]),e._v(" "),t("p",[e._v("The CaSS Repository is a "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Representational_state_transfer",target:"_blank",rel:"noopener noreferrer"}},[e._v("REST"),t("OutboundLink")],1),e._v(" based "),t("a",{attrs:{href:"https://json-ld.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JSON-LD"),t("OutboundLink")],1),e._v(" object store with "),t("em",[e._v("CRUD")]),e._v(", "),t("em",[e._v("Search")]),e._v(", "),t("em",[e._v("Permissioning")]),e._v(", and "),t("em",[e._v("Basic")]),e._v(" Identity Management functionality. It includes an extensible plugin infrastructure.")]),e._v(" "),t("ul",[t("li",[e._v("SkyRepo attempts to follow RESTful HTTP best practices.\n"),t("ul",[t("li",[e._v("The "),t("code",[e._v("GET")]),e._v(" operation is used to perform a "),t("strong",[e._v("READ")])]),e._v(" "),t("li",[e._v("The "),t("code",[e._v("POST")]),e._v(" and "),t("code",[e._v("PUT")]),e._v(" operations will "),t("strong",[e._v("CREATE")]),e._v(" or "),t("strong",[e._v("UPDATE")]),e._v(" an object")]),e._v(" "),t("li",[e._v("The "),t("code",[e._v("DELETE")]),e._v(" operation will "),t("strong",[e._v("DELETE")]),e._v(" an object")])])]),e._v(" "),t("li",[e._v("Search is available using the "),t("code",[e._v("?q=")]),e._v(" format and follows ElasticSearch Simple Query Strings guidelines.")]),e._v(" "),t("li",[e._v("Permissioning is applied for every query. Authentic requests are validated through the verification of “Signature Sheets” (a form of signed nonce+timestamp token sent with the request). OAuth-based permissioning is currently in development.\n"),t("ul",[t("li",[e._v("Encrypted objects are not returned without a valid signature sheet from an object owner or reader.")]),e._v(" "),t("li",[e._v("Objects, if owned, may not be updated without a valid signature sheet from the current object owner.")]),e._v(" "),t("li",[e._v("Objects, if owned, may not be deleted without a valid signature sheet from the current object owner.")]),e._v(" "),t("li",[e._v("Encrypted objects may be decrypted through use of the private key of one of the owners or readers.")]),e._v(" "),t("li",[e._v("Encrypted objects may be created through the use of a public key of the intended owner.")])])]),e._v(" "),t("li",[e._v("Basic Identity Management is a hashed username and hashed password based store for private keys. By default, CaSS Keys are generated client side and encrypted with a combination of the clear text username and password. As a result, the server owner does not have the capability to manage or recover a user’s keys.")])]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("We encourage people to use a different identity management system.")])]),e._v(" "),t("h2",{attrs:{id:"looking-around"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#looking-around"}},[e._v("#")]),e._v(" Looking Around")]),e._v(" "),t("p",[e._v("For a more hands-on approach to understanding the specifics of CaSS, we should take a look at some data directly through your browser.")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("All data may be accessed by your browser.")])]),e._v(" "),t("ol",[t("li",[e._v("Navigate "),t("a",{attrs:{href:"https://cassproject.github.io/cass-editor/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" in a new tab, open up a framework (like O*NET Expanded) and click the "),t("a",{attrs:{href:"https://sandbox.cassproject.org/api/custom/data/schema.cassproject.org.0.2.Framework/ce4c0e41-f24c-407d-95af-047bfee429bf",target:"_blank",rel:"noopener noreferrer"}},[e._v("URL"),t("OutboundLink")],1),e._v(" under the description.")]),e._v(" "),t("li",[e._v("You will then see the JSON-LD representation of the Competency Framework.")]),e._v(" "),t("li",[e._v("Under ‘"),t("em",[e._v("competency")]),e._v("’, there are many URL's. Click one to navigate to that competency.")]),e._v(" "),t("li",[e._v("Here, you will see fields like '"),t("em",[e._v("name")]),e._v("' and '"),t("em",[e._v("description")]),e._v("'. These, as you would expect, are properties of the object according to the schema defined at "),t("code",[e._v("@context")]),e._v(".")]),e._v(" "),t("li",[t("code",[e._v("*@id")]),e._v(", "),t("code",[e._v("@context")]),e._v(", and "),t("code",[e._v("@type")]),e._v(" are properties of the JSON-LD format.")]),e._v(" "),t("li",[t("code",[e._v("@owner")]),e._v(", "),t("code",[e._v("@reader")]),e._v(" (if it exists) and "),t("code",[e._v("@signature")]),e._v(" are properties of the KBAC extension to JSON-LD.")]),e._v(" "),t("li",[e._v("Everything that begins with "),t("code",[e._v("@")]),e._v(" can be thought of to be metadata properties, and everything else is data.")])]),e._v(" "),t("p",[e._v("If you would like to learn more about how JSON-LD works, you can visit "),t("a",{attrs:{href:"http://www.linkeddatatools.com/introduction-json-ld",target:"_blank",rel:"noopener noreferrer"}},[e._v("this tutorial series on Structured Data"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Hopefully, it is easy to imagine how a browser, scripting language, or other server would take advantage of this data. But reading data is of secondary importance to being able to find it. For that, we need search.")]),e._v(" "),t("ol",[t("li",[e._v("Navigate here in a new tab. This performs a search query with the query being "),t("code",[e._v("*")]),e._v(". Using "),t("a",{attrs:{href:"https://logz.io/blog/elasticsearch-queries/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ElasticSearch Simple Query Strings"),t("OutboundLink")],1),e._v(", you can query in quite a few ways.")]),e._v(" "),t("li",[e._v("First, replace "),t("code",[e._v("*")]),e._v(" with "),t("code",[e._v("Addition")]),e._v(". This performs a full text search for "),t("em",[e._v("Addition")]),e._v(" in all fields.")]),e._v(" "),t("li",[e._v("Next, replace "),t("code",[e._v("Addition")]),e._v(" with "),t("code",[e._v("name:Addition")]),e._v(". This requires the term "),t("em",[e._v("Addition")]),e._v(" to appear in the "),t("em",[e._v("name")]),e._v(" field.")]),e._v(" "),t("li",[e._v("Next, replace "),t("code",[e._v("name:Addition")]),e._v(" with "),t("code",[e._v("tract")]),e._v(". This should come up with no results. By default, the search matches words, not strings segments. This can be overridden by using wildcards.")]),e._v(" "),t("li",[e._v("Try "),t("code",[e._v("*tract*")]),e._v(". This should come up with competencies that include terms such as "),t("em",[e._v("subtract")]),e._v(" and "),t("em",[e._v("contraction")]),e._v(".")]),e._v(" "),t("li",[e._v("Now try "),t("code",[e._v("name:*tract* AND description:*tract*")]),e._v(". This will return competencies that have "),t("em",[e._v("tract")]),e._v(" in both the name and description.")])]),e._v(" "),t("p",[e._v("This can be used to construct search queries that filter based on the owner of the object, user search terms, or by type.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/87.9b037418.js.gz b/docs/assets/js/87.9b037418.js.gz new file mode 100644 index 000000000..55df9526b Binary files /dev/null and b/docs/assets/js/87.9b037418.js.gz differ diff --git a/docs/assets/js/91.51e954d9.js.gz b/docs/assets/js/91.51e954d9.js.gz deleted file mode 100644 index fda948f8c..000000000 Binary files a/docs/assets/js/91.51e954d9.js.gz and /dev/null differ diff --git a/docs/assets/js/91.51e954d9.js b/docs/assets/js/91.5f15c08e.js similarity index 87% rename from docs/assets/js/91.51e954d9.js rename to docs/assets/js/91.5f15c08e.js index b3408e32b..eb93e6cdc 100644 --- a/docs/assets/js/91.51e954d9.js +++ b/docs/assets/js/91.5f15c08e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{714:function(t,s,e){"use strict";e.r(s);var a=e(69),o=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"about"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#about"}},[this._v("#")]),this._v(" About")]),this._v(" "),t("p",[this._v("These pages offer tutorials for specific use-cases.")])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{716:function(t,s,e){"use strict";e.r(s);var a=e(69),o=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"about"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#about"}},[this._v("#")]),this._v(" About")]),this._v(" "),t("p",[this._v("These pages offer tutorials for specific use-cases.")])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/91.5f15c08e.js.gz b/docs/assets/js/91.5f15c08e.js.gz new file mode 100644 index 000000000..8fc68833b Binary files /dev/null and b/docs/assets/js/91.5f15c08e.js.gz differ diff --git a/docs/assets/js/92.fce7a4ef.js b/docs/assets/js/92.036cef60.js similarity index 99% rename from docs/assets/js/92.fce7a4ef.js rename to docs/assets/js/92.036cef60.js index 7e2ca22b3..ab88b7331 100644 --- a/docs/assets/js/92.fce7a4ef.js +++ b/docs/assets/js/92.036cef60.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{715:function(t,s,e){"use strict";e.r(s);var a=e(69),n=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"align-assessments-to-competencies"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#align-assessments-to-competencies"}},[t._v("#")]),t._v(" Align Assessments to Competencies")]),t._v(" "),s("p",[t._v("The functional alignment of assessment data to competency data requires the following:")]),t._v(" "),s("ol",[s("li",[t._v("A unique identifier for the assessment")]),t._v(" "),s("li",[t._v("A competency to be aligned to")]),t._v(" "),s("li",[t._v("A data pipeline that emits results from the assessment system")]),t._v(" "),s("li",[t._v("An alignment between the assessment and the competency")]),t._v(" "),s("li",[t._v("An adapter that listens for or watches the assessment system for new data and converts it into assertions")])]),t._v(" "),s("p",[t._v("With all requirements satisfied, the following should happen:")]),t._v(" "),s("ul",[s("li",[t._v("The assessment system assesses a learner.")]),t._v(" "),s("li",[t._v("The assessment system emits a record (xAPI or otherwise) that identifies the learner, identifies the assessment or question, and provides a success/failure or score metric.")]),t._v(" "),s("li",[t._v("The assessment adapter receives the record.")]),t._v(" "),s("li",[t._v("The assessment adapter looks for alignments in CaSS by the assessment or question identifier.")]),t._v(" "),s("li",[t._v("The assessment adapter looks up the student in CaSS by the learner’s identifier.")]),t._v(" "),s("li",[t._v("The assessment adapter creates an assertion on behalf of the assessment system that asserts that the assessment system believes the learner holds or does not hold the aligned competency, and optionally provides a confidence based on the score. The assessment system’s record may or may not be attached as evidence.")])]),t._v(" "),s("p",[t._v("Let's dive deeper into each of these requirements.")]),t._v(" "),s("h2",{attrs:{id:"_1-a-unique-identifier-for-the-assessment"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_1-a-unique-identifier-for-the-assessment"}},[t._v("#")]),t._v(" 1. A unique identifier for the assessment")]),t._v(" "),s("p",[t._v("This unique identifier may come from the originating system or may be generated by an intermediate system. For instance, in Moodle, a question emitted via an xAPI statement has an identifier similar to")]),t._v(" "),s("p",[s("code",[t._v("https://moodle.eduworks.com/question/question.php?cmid=4&id=2")])]),t._v(" "),s("p",[t._v("and an assessment emitted via an xAPI statement has an identifier similar to")]),t._v(" "),s("p",[s("code",[t._v("https://moodle.eduworks.com/mod/quiz/view.php?id=4")])]),t._v(" "),s("h2",{attrs:{id:"_2-a-competency-to-be-aligned-to"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_2-a-competency-to-be-aligned-to"}},[t._v("#")]),t._v(" 2. A competency to be aligned to")]),t._v(" "),s("p",[t._v("This competency should reasonably map to the assessment or assessment question. An assessment competency may have multiple competencies underneath it. This means that the assessment will implicitly make a statement about all of the competencies underneath the competency aligned.")]),t._v(" "),s("h2",{attrs:{id:"_3-a-data-pipeline-that-emits-results-from-the-assessment-system"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_3-a-data-pipeline-that-emits-results-from-the-assessment-system"}},[t._v("#")]),t._v(" 3. A data pipeline that emits results from the assessment system")]),t._v(" "),s("p",[t._v("The data pipeline should emit, as a single record:")]),t._v(" "),s("ul",[s("li",[t._v("The assessment or question ID")]),t._v(" "),s("li",[t._v("An identifier for the individual\n"),s("ul",[s("li",[t._v("This identifier, if an email, maps to a Person Object’s email address "),s("a",{attrs:{href:"https://schema.org/email",target:"_blank",rel:"noopener noreferrer"}},[t._v("[schema]"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("This identifier, if any other identifier, maps to a Person Object’s identifier "),s("a",{attrs:{href:"https://schema.org/identifier",target:"_blank",rel:"noopener noreferrer"}},[t._v("[schema]"),s("OutboundLink")],1)])])]),t._v(" "),s("li",[t._v("A score, which represents pass, fail, or that can be bounded between 0-1")])]),t._v(" "),s("p",[t._v("As an example, here is an xAPI statement that does the above:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"authority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"objectType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Agent"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Eduworks"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"mbox"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mailto:cass@eduworks.com"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"stored"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2019-10-25T15:34:33.406Z"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"actor"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Fritz Ray"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"mbox"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mailto:fritz.ray@eduworks.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"objectType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Agent"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"timestamp"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2019-10-25T16:33:34+01:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"version"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1.0.0"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"9f110754-817f-4207-a015-26044c78f436"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"result"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"score"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"raw"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.33333")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"min"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"max"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"scaled"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.0833325")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"completion"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"duration"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"PT33S"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"verb"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://adlnet.gov/expapi/verbs/completed"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"display"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"en"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"completed"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"object"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://moodle.eduworks.com/mod/quiz/view.php?id=4"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"definition"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://adlnet.gov/expapi/activities/assessment"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"en"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Headset Use"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"objectType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Activity"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"_4-an-alignment-between-the-assessment-and-the-competency"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_4-an-alignment-between-the-assessment-and-the-competency"}},[t._v("#")]),t._v(" 4. An alignment between the assessment and the competency")]),t._v(" "),s("p",[t._v("A resource or assessment alignment in CaSS looks like this:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CreativeWork"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"educationalAlignment"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AlignmentObject"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alignmentType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"assesses"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"targetUrl"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c710d/1525956177976"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://moodle.eduworks.com/mod/quiz/view.php?id=4"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("and is created using the following code:")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CreativeWork")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (Ensure you have a repo defined in your code)")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://moodle.eduworks.com/mod/quiz/view.php?id=4"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AlignmentObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("alignmentType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"assesses"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("targetUrl "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The CaSS Dashboard ("),s("strong",[t._v("cass-vlrc")]),t._v(") can do this. Navigate to the competency, click "),s("em",[t._v("Resources")]),t._v(", and use the URL of the assessment or question to create a new Resource.")])]),t._v(" "),s("h2",{attrs:{id:"_5-an-adapter-that-listens-for-or-watches-the-assessment-system-for-new-data-and-converts-it-into-assertions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_5-an-adapter-that-listens-for-or-watches-the-assessment-system-for-new-data-and-converts-it-into-assertions"}},[t._v("#")]),t._v(" 5. An adapter that listens for or watches the assessment system for new data and converts it into assertions")]),t._v(" "),s("p",[t._v("The CaSS "),s("a",{attrs:{href:"/dev/extending-cass/adapters/xapi"}},[t._v("xAPI Adapter")]),t._v(" does this.")]),t._v(" "),s("p",[t._v("Other CaSS adapters could be created that do this, as well as other code that can use the CaSS Library. To see details about how the CaSS xAPI Adapter does this, you can read the code "),s("a",{attrs:{href:"https://github.com/cassproject/CASS/blob/master/src/main/resources/c-adapter/xapi/xapi.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{714:function(t,s,e){"use strict";e.r(s);var a=e(69),n=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"align-assessments-to-competencies"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#align-assessments-to-competencies"}},[t._v("#")]),t._v(" Align Assessments to Competencies")]),t._v(" "),s("p",[t._v("The functional alignment of assessment data to competency data requires the following:")]),t._v(" "),s("ol",[s("li",[t._v("A unique identifier for the assessment")]),t._v(" "),s("li",[t._v("A competency to be aligned to")]),t._v(" "),s("li",[t._v("A data pipeline that emits results from the assessment system")]),t._v(" "),s("li",[t._v("An alignment between the assessment and the competency")]),t._v(" "),s("li",[t._v("An adapter that listens for or watches the assessment system for new data and converts it into assertions")])]),t._v(" "),s("p",[t._v("With all requirements satisfied, the following should happen:")]),t._v(" "),s("ul",[s("li",[t._v("The assessment system assesses a learner.")]),t._v(" "),s("li",[t._v("The assessment system emits a record (xAPI or otherwise) that identifies the learner, identifies the assessment or question, and provides a success/failure or score metric.")]),t._v(" "),s("li",[t._v("The assessment adapter receives the record.")]),t._v(" "),s("li",[t._v("The assessment adapter looks for alignments in CaSS by the assessment or question identifier.")]),t._v(" "),s("li",[t._v("The assessment adapter looks up the student in CaSS by the learner’s identifier.")]),t._v(" "),s("li",[t._v("The assessment adapter creates an assertion on behalf of the assessment system that asserts that the assessment system believes the learner holds or does not hold the aligned competency, and optionally provides a confidence based on the score. The assessment system’s record may or may not be attached as evidence.")])]),t._v(" "),s("p",[t._v("Let's dive deeper into each of these requirements.")]),t._v(" "),s("h2",{attrs:{id:"_1-a-unique-identifier-for-the-assessment"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_1-a-unique-identifier-for-the-assessment"}},[t._v("#")]),t._v(" 1. A unique identifier for the assessment")]),t._v(" "),s("p",[t._v("This unique identifier may come from the originating system or may be generated by an intermediate system. For instance, in Moodle, a question emitted via an xAPI statement has an identifier similar to")]),t._v(" "),s("p",[s("code",[t._v("https://moodle.eduworks.com/question/question.php?cmid=4&id=2")])]),t._v(" "),s("p",[t._v("and an assessment emitted via an xAPI statement has an identifier similar to")]),t._v(" "),s("p",[s("code",[t._v("https://moodle.eduworks.com/mod/quiz/view.php?id=4")])]),t._v(" "),s("h2",{attrs:{id:"_2-a-competency-to-be-aligned-to"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_2-a-competency-to-be-aligned-to"}},[t._v("#")]),t._v(" 2. A competency to be aligned to")]),t._v(" "),s("p",[t._v("This competency should reasonably map to the assessment or assessment question. An assessment competency may have multiple competencies underneath it. This means that the assessment will implicitly make a statement about all of the competencies underneath the competency aligned.")]),t._v(" "),s("h2",{attrs:{id:"_3-a-data-pipeline-that-emits-results-from-the-assessment-system"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_3-a-data-pipeline-that-emits-results-from-the-assessment-system"}},[t._v("#")]),t._v(" 3. A data pipeline that emits results from the assessment system")]),t._v(" "),s("p",[t._v("The data pipeline should emit, as a single record:")]),t._v(" "),s("ul",[s("li",[t._v("The assessment or question ID")]),t._v(" "),s("li",[t._v("An identifier for the individual\n"),s("ul",[s("li",[t._v("This identifier, if an email, maps to a Person Object’s email address "),s("a",{attrs:{href:"https://schema.org/email",target:"_blank",rel:"noopener noreferrer"}},[t._v("[schema]"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("This identifier, if any other identifier, maps to a Person Object’s identifier "),s("a",{attrs:{href:"https://schema.org/identifier",target:"_blank",rel:"noopener noreferrer"}},[t._v("[schema]"),s("OutboundLink")],1)])])]),t._v(" "),s("li",[t._v("A score, which represents pass, fail, or that can be bounded between 0-1")])]),t._v(" "),s("p",[t._v("As an example, here is an xAPI statement that does the above:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"authority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"objectType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Agent"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Eduworks"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"mbox"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mailto:cass@eduworks.com"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"stored"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2019-10-25T15:34:33.406Z"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"actor"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Fritz Ray"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"mbox"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mailto:fritz.ray@eduworks.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"objectType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Agent"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"timestamp"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2019-10-25T16:33:34+01:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"version"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1.0.0"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"9f110754-817f-4207-a015-26044c78f436"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"result"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"score"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"raw"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.33333")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"min"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"max"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"scaled"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.0833325")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"completion"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"duration"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"PT33S"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"verb"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://adlnet.gov/expapi/verbs/completed"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"display"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"en"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"completed"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"object"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://moodle.eduworks.com/mod/quiz/view.php?id=4"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"definition"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://adlnet.gov/expapi/activities/assessment"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"en"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Headset Use"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"objectType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Activity"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"_4-an-alignment-between-the-assessment-and-the-competency"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_4-an-alignment-between-the-assessment-and-the-competency"}},[t._v("#")]),t._v(" 4. An alignment between the assessment and the competency")]),t._v(" "),s("p",[t._v("A resource or assessment alignment in CaSS looks like this:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CreativeWork"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"educationalAlignment"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AlignmentObject"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alignmentType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"assesses"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"targetUrl"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c710d/1525956177976"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://moodle.eduworks.com/mod/quiz/view.php?id=4"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("and is created using the following code:")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CreativeWork")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (Ensure you have a repo defined in your code)")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://moodle.eduworks.com/mod/quiz/view.php?id=4"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AlignmentObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("alignmentType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"assesses"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("targetUrl "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The CaSS Dashboard ("),s("strong",[t._v("cass-vlrc")]),t._v(") can do this. Navigate to the competency, click "),s("em",[t._v("Resources")]),t._v(", and use the URL of the assessment or question to create a new Resource.")])]),t._v(" "),s("h2",{attrs:{id:"_5-an-adapter-that-listens-for-or-watches-the-assessment-system-for-new-data-and-converts-it-into-assertions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_5-an-adapter-that-listens-for-or-watches-the-assessment-system-for-new-data-and-converts-it-into-assertions"}},[t._v("#")]),t._v(" 5. An adapter that listens for or watches the assessment system for new data and converts it into assertions")]),t._v(" "),s("p",[t._v("The CaSS "),s("a",{attrs:{href:"/dev/extending-cass/adapters/xapi"}},[t._v("xAPI Adapter")]),t._v(" does this.")]),t._v(" "),s("p",[t._v("Other CaSS adapters could be created that do this, as well as other code that can use the CaSS Library. To see details about how the CaSS xAPI Adapter does this, you can read the code "),s("a",{attrs:{href:"https://github.com/cassproject/CASS/blob/master/src/main/resources/c-adapter/xapi/xapi.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/92.fce7a4ef.js.gz b/docs/assets/js/92.036cef60.js.gz similarity index 96% rename from docs/assets/js/92.fce7a4ef.js.gz rename to docs/assets/js/92.036cef60.js.gz index dac3e4b17..a19109125 100644 Binary files a/docs/assets/js/92.fce7a4ef.js.gz and b/docs/assets/js/92.036cef60.js.gz differ diff --git a/docs/assets/js/93.c6139828.js.gz b/docs/assets/js/93.c6139828.js.gz deleted file mode 100644 index fd1cb85e4..000000000 Binary files a/docs/assets/js/93.c6139828.js.gz and /dev/null differ diff --git a/docs/assets/js/93.c6139828.js b/docs/assets/js/93.dfa95623.js similarity index 99% rename from docs/assets/js/93.c6139828.js rename to docs/assets/js/93.dfa95623.js index e9dbec6cf..b9a1f9a2e 100644 --- a/docs/assets/js/93.c6139828.js +++ b/docs/assets/js/93.dfa95623.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{716:function(t,s,e){"use strict";e.r(s);var a=e(69),n=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"align-resources-to-competencies"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#align-resources-to-competencies"}},[t._v("#")]),t._v(" Align Resources to Competencies")]),t._v(" "),s("p",[t._v("The functional alignment of resource data to competencies requires the following:")]),t._v(" "),s("ol",[s("li",[t._v("A unique identifier for the resource")]),t._v(" "),s("li",[t._v("An alignment between the resource and the competency")])]),t._v(" "),s("p",[t._v("Let's look at these.")]),t._v(" "),s("h2",{attrs:{id:"_1-a-unique-identifier-for-the-resource"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_1-a-unique-identifier-for-the-resource"}},[t._v("#")]),t._v(" 1. A unique identifier for the resource")]),t._v(" "),s("p",[t._v("This unique identifier may come from the originating system or may be generated by an intermediate system. For instance, in Moodle, a website has a URL identifier similar to:")]),t._v(" "),s("p",[s("code",[t._v("https://www.headsetsdirect.com/headsets-101-ultimate-guide-to-understanding-headsets/")])]),t._v(" "),s("p",[t._v("It is not strictly required that it be a URL, but it should be a URN or some other universal resource identifier.")]),t._v(" "),s("h2",{attrs:{id:"_2-an-alignment-between-the-resource-and-the-competency"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_2-an-alignment-between-the-resource-and-the-competency"}},[t._v("#")]),t._v(" 2. An alignment between the resource and the competency")]),t._v(" "),s("p",[t._v("A resource or assessment alignment in CaSS looks like this:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CreativeWork"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"educationalAlignment"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AlignmentObject"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alignmentType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"teaches"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"targetUrl"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c720d/1525956177976"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://www.headsetsdirect.com/headsets-101-ultimate-guide-to-understanding-headsets/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("and is created using the following code:")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CreativeWork")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (Ensure you have a repo defined in your code)")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://www.headsetsdirect.com/headsets-101-ultimate-guide-to-understanding-headsets/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AlignmentObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("alignmentType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"teaches"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("targetUrl "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The CaSS Dashboard ("),s("strong",[t._v("cass-vlrc")]),t._v(") can do this. Navigate to the competency, click "),s("em",[t._v("Resources")]),t._v(", and use the URL of the resource to create a new Resource.")])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{715:function(t,s,e){"use strict";e.r(s);var a=e(69),n=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"align-resources-to-competencies"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#align-resources-to-competencies"}},[t._v("#")]),t._v(" Align Resources to Competencies")]),t._v(" "),s("p",[t._v("The functional alignment of resource data to competencies requires the following:")]),t._v(" "),s("ol",[s("li",[t._v("A unique identifier for the resource")]),t._v(" "),s("li",[t._v("An alignment between the resource and the competency")])]),t._v(" "),s("p",[t._v("Let's look at these.")]),t._v(" "),s("h2",{attrs:{id:"_1-a-unique-identifier-for-the-resource"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_1-a-unique-identifier-for-the-resource"}},[t._v("#")]),t._v(" 1. A unique identifier for the resource")]),t._v(" "),s("p",[t._v("This unique identifier may come from the originating system or may be generated by an intermediate system. For instance, in Moodle, a website has a URL identifier similar to:")]),t._v(" "),s("p",[s("code",[t._v("https://www.headsetsdirect.com/headsets-101-ultimate-guide-to-understanding-headsets/")])]),t._v(" "),s("p",[t._v("It is not strictly required that it be a URL, but it should be a URN or some other universal resource identifier.")]),t._v(" "),s("h2",{attrs:{id:"_2-an-alignment-between-the-resource-and-the-competency"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_2-an-alignment-between-the-resource-and-the-competency"}},[t._v("#")]),t._v(" 2. An alignment between the resource and the competency")]),t._v(" "),s("p",[t._v("A resource or assessment alignment in CaSS looks like this:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CreativeWork"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"educationalAlignment"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AlignmentObject"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alignmentType"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"teaches"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"targetUrl"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c720d/1525956177976"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"@context"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://schema.org/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://www.headsetsdirect.com/headsets-101-ultimate-guide-to-understanding-headsets/"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("and is created using the following code:")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" c "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CreativeWork")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("generateId")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("repo"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("selectedServer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (Ensure you have a repo defined in your code)")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://www.headsetsdirect.com/headsets-101-ultimate-guide-to-understanding-headsets/"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AlignmentObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("alignmentType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"teaches"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nc"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("educationalAlignment"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("targetUrl "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nEcRepository"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("c"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("log"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("The CaSS Dashboard ("),s("strong",[t._v("cass-vlrc")]),t._v(") can do this. Navigate to the competency, click "),s("em",[t._v("Resources")]),t._v(", and use the URL of the resource to create a new Resource.")])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/93.dfa95623.js.gz b/docs/assets/js/93.dfa95623.js.gz new file mode 100644 index 000000000..a51a10ebd Binary files /dev/null and b/docs/assets/js/93.dfa95623.js.gz differ diff --git a/docs/assets/js/app.993446c6.js b/docs/assets/js/app.419e09fa.js similarity index 84% rename from docs/assets/js/app.993446c6.js rename to docs/assets/js/app.419e09fa.js index 51101583e..3d21eba67 100644 --- a/docs/assets/js/app.993446c6.js +++ b/docs/assets/js/app.419e09fa.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var r,a,s=t[0],c=t[1],u=t[2],f=0,p=[];f=n.length?s(void 0,!0):(e=r(n,o),t.index+=e.length,s(e,!1))}))},function(e,t,n){"use strict";var r=n(50),o=n(23);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(4),o=n(54),i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not a function")}},function(e,t,n){"use strict";var r=n(43),o=TypeError;e.exports=function(e){if(r(e))throw new o("Can't call method on "+e);return e}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";var r=n(8),o=n(13),i=n(38);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var r=n(3),o=n(172),i=n(173),a=n(132),s=n(25),c=n(29),u=n(5)("iterator"),l=a.values,f=function(e,t){if(e){if(e[u]!==l)try{s(e,u,l)}catch(t){e[u]=l}if(c(e,t,!0),o[t])for(var n in a)if(e[n]!==a[n])try{s(e,n,a[n])}catch(t){e[n]=a[n]}}};for(var p in o)f(r[p]&&r[p].prototype,p);f(i,"DOMTokenList")},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(59),a=n(258),s=o.WebAssembly,c=7!==new Error("e",{cause:7}).cause,u=function(e,t){var n={};n[e]=a(e,t,c),r({global:!0,constructor:!0,arity:1,forced:c},n)},l=function(e,t){if(s&&s[e]){var n={};n[e]=a("WebAssembly."+e,t,c),r({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:c},n)}};u("Error",(function(e){return function(t){return i(e,this,arguments)}})),u("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),u("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),u("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),u("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),u("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),u("URIError",(function(e){return function(t){return i(e,this,arguments)}})),l("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),l("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),l("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},function(e,t,n){var r=n(178),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){"use strict";var r=n(13).f,o=n(9),i=n(5)("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(2);e.exports=r({}.isPrototypeOf)},function(e,t,n){"use strict";var r=n(96);e.exports=function(e){return r(e.length)}},function(e,t,n){var r=n(296),o=n(299);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){"use strict";var r=n(0),o=n(114);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(e,t,n){"use strict";var r,o,i,a=n(233),s=n(3),c=n(6),u=n(25),l=n(9),f=n(100),p=n(79),d=n(55),v=s.TypeError,h=s.WeakMap;if(a||f.state){var g=f.state||(f.state=new h);g.get=g.get,g.has=g.has,g.set=g.set,r=function(e,t){if(g.has(e))throw new v("Object already initialized");return t.facade=e,g.set(e,t),t},o=function(e){return g.get(e)||{}},i=function(e){return g.has(e)}}else{var m=p("state");d[m]=!0,r=function(e,t){if(l(e,m))throw new v("Object already initialized");return t.facade=e,u(e,m,t),t},o=function(e){return l(e,m)?e[m]:{}},i=function(e){return l(e,m)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!c(t)||(n=o(t)).type!==e)throw new v("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var r=n(8),o=n(7),i=n(104),a=n(38),s=n(21),c=n(102),u=n(9),l=n(140),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=s(e),t=c(t),l)try{return f(e,t)}catch(e){}if(u(e,t))return a(!o(i.f,e,t),e[t])}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";var r,o=n(10),i=n(138),a=n(103),s=n(55),c=n(146),u=n(76),l=n(79),f=l("IE_PROTO"),p=function(){},d=function(e){return" + diff --git a/docs/authoring/assertions/assertion-timeline/index.html.gz b/docs/authoring/assertions/assertion-timeline/index.html.gz index 336a50cb3..977e268d9 100644 Binary files a/docs/authoring/assertions/assertion-timeline/index.html.gz and b/docs/authoring/assertions/assertion-timeline/index.html.gz differ diff --git a/docs/authoring/assertions/managing-assertions/index.html b/docs/authoring/assertions/managing-assertions/index.html index a786920c5..ca03f43d7 100644 --- a/docs/authoring/assertions/managing-assertions/index.html +++ b/docs/authoring/assertions/managing-assertions/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/authoring/assertions/managing-assertions/index.html.gz b/docs/authoring/assertions/managing-assertions/index.html.gz index 061549dad..fd9201262 100644 Binary files a/docs/authoring/assertions/managing-assertions/index.html.gz and b/docs/authoring/assertions/managing-assertions/index.html.gz differ diff --git a/docs/authoring/assertions/sharing-assertions/index.html b/docs/authoring/assertions/sharing-assertions/index.html index 95ba395d5..cc534515c 100644 --- a/docs/authoring/assertions/sharing-assertions/index.html +++ b/docs/authoring/assertions/sharing-assertions/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/authoring/assertions/sharing-assertions/index.html.gz b/docs/authoring/assertions/sharing-assertions/index.html.gz index 38a3d61d4..281611115 100644 Binary files a/docs/authoring/assertions/sharing-assertions/index.html.gz and b/docs/authoring/assertions/sharing-assertions/index.html.gz differ diff --git a/docs/authoring/competency-and-framework-management/index.html b/docs/authoring/competency-and-framework-management/index.html index 7bc032407..2cecb7760 100644 --- a/docs/authoring/competency-and-framework-management/index.html +++ b/docs/authoring/competency-and-framework-management/index.html @@ -20,7 +20,7 @@ - + @@ -49,6 +49,6 @@ →

- + diff --git a/docs/authoring/competency-and-framework-management/index.html.gz b/docs/authoring/competency-and-framework-management/index.html.gz index 31e5e669c..50205b6ac 100644 Binary files a/docs/authoring/competency-and-framework-management/index.html.gz and b/docs/authoring/competency-and-framework-management/index.html.gz differ diff --git a/docs/authoring/competency-properties/index.html b/docs/authoring/competency-properties/index.html index 1faf91ced..72ca670d9 100644 --- a/docs/authoring/competency-properties/index.html +++ b/docs/authoring/competency-properties/index.html @@ -20,7 +20,7 @@ - + @@ -46,6 +46,6 @@ →

- + diff --git a/docs/authoring/competency-properties/index.html.gz b/docs/authoring/competency-properties/index.html.gz index 11db6739b..5d54f9227 100644 Binary files a/docs/authoring/competency-properties/index.html.gz and b/docs/authoring/competency-properties/index.html.gz differ diff --git a/docs/authoring/configuration/index.html b/docs/authoring/configuration/index.html index c7c582e56..db796500b 100644 --- a/docs/authoring/configuration/index.html +++ b/docs/authoring/configuration/index.html @@ -20,7 +20,7 @@ - + @@ -44,6 +44,6 @@ →

- + diff --git a/docs/authoring/configuration/index.html.gz b/docs/authoring/configuration/index.html.gz index eba4aac70..f294699c1 100644 Binary files a/docs/authoring/configuration/index.html.gz and b/docs/authoring/configuration/index.html.gz differ diff --git a/docs/authoring/crosswalk-tool/index.html b/docs/authoring/crosswalk-tool/index.html index bba452d63..27ced003f 100644 --- a/docs/authoring/crosswalk-tool/index.html +++ b/docs/authoring/crosswalk-tool/index.html @@ -20,7 +20,7 @@ - + @@ -51,6 +51,6 @@ →

- + diff --git a/docs/authoring/crosswalk-tool/index.html.gz b/docs/authoring/crosswalk-tool/index.html.gz index b3c5b6b36..3c10ca480 100644 Binary files a/docs/authoring/crosswalk-tool/index.html.gz and b/docs/authoring/crosswalk-tool/index.html.gz differ diff --git a/docs/authoring/default-users/index.html b/docs/authoring/default-users/index.html index 6a89621dc..792393800 100644 --- a/docs/authoring/default-users/index.html +++ b/docs/authoring/default-users/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/authoring/default-users/index.html.gz b/docs/authoring/default-users/index.html.gz index 32e54f500..ca21d8b55 100644 Binary files a/docs/authoring/default-users/index.html.gz and b/docs/authoring/default-users/index.html.gz differ diff --git a/docs/authoring/directory-management/index.html b/docs/authoring/directory-management/index.html index 6ecde259e..f1fb910b3 100644 --- a/docs/authoring/directory-management/index.html +++ b/docs/authoring/directory-management/index.html @@ -20,7 +20,7 @@ - + @@ -53,6 +53,6 @@ →

- + diff --git a/docs/authoring/directory-management/index.html.gz b/docs/authoring/directory-management/index.html.gz index 95d99efdc..15a8d62d1 100644 Binary files a/docs/authoring/directory-management/index.html.gz and b/docs/authoring/directory-management/index.html.gz differ diff --git a/docs/authoring/directory-sharing/index.html b/docs/authoring/directory-sharing/index.html index b4fdcd679..98e011201 100644 --- a/docs/authoring/directory-sharing/index.html +++ b/docs/authoring/directory-sharing/index.html @@ -20,7 +20,7 @@ - + @@ -42,6 +42,6 @@ →

- + diff --git a/docs/authoring/directory-sharing/index.html.gz b/docs/authoring/directory-sharing/index.html.gz index fc4f12bdc..24ce0be27 100644 Binary files a/docs/authoring/directory-sharing/index.html.gz and b/docs/authoring/directory-sharing/index.html.gz differ diff --git a/docs/authoring/exporting-framework/index.html b/docs/authoring/exporting-framework/index.html index 49c990fbe..703fe2804 100644 --- a/docs/authoring/exporting-framework/index.html +++ b/docs/authoring/exporting-framework/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/authoring/exporting-framework/index.html.gz b/docs/authoring/exporting-framework/index.html.gz index 202a50b92..1d4058aff 100644 Binary files a/docs/authoring/exporting-framework/index.html.gz and b/docs/authoring/exporting-framework/index.html.gz differ diff --git a/docs/authoring/framework-properties/index.html b/docs/authoring/framework-properties/index.html index e35183927..1d670b1b0 100644 --- a/docs/authoring/framework-properties/index.html +++ b/docs/authoring/framework-properties/index.html @@ -20,7 +20,7 @@ - + @@ -43,6 +43,6 @@ →

- + diff --git a/docs/authoring/framework-properties/index.html.gz b/docs/authoring/framework-properties/index.html.gz index 2f1f27a28..0128982f0 100644 Binary files a/docs/authoring/framework-properties/index.html.gz and b/docs/authoring/framework-properties/index.html.gz differ diff --git a/docs/authoring/getting-started/index.html b/docs/authoring/getting-started/index.html index f351db430..ea81ea006 100644 --- a/docs/authoring/getting-started/index.html +++ b/docs/authoring/getting-started/index.html @@ -20,7 +20,7 @@ - + @@ -69,6 +69,6 @@ →

- + diff --git a/docs/authoring/getting-started/index.html.gz b/docs/authoring/getting-started/index.html.gz index b68ddb91c..7d830ca61 100644 Binary files a/docs/authoring/getting-started/index.html.gz and b/docs/authoring/getting-started/index.html.gz differ diff --git a/docs/authoring/importing-framework/index.html b/docs/authoring/importing-framework/index.html index 15dce8212..bf0ae6be8 100644 --- a/docs/authoring/importing-framework/index.html +++ b/docs/authoring/importing-framework/index.html @@ -20,7 +20,7 @@ - + @@ -44,6 +44,6 @@ →

- + diff --git a/docs/authoring/importing-framework/index.html.gz b/docs/authoring/importing-framework/index.html.gz index 17e750c30..e3353f7bf 100644 Binary files a/docs/authoring/importing-framework/index.html.gz and b/docs/authoring/importing-framework/index.html.gz differ diff --git a/docs/authoring/organizations-and-groups/index.html b/docs/authoring/organizations-and-groups/index.html index 4dfccc554..0e4bf4290 100644 --- a/docs/authoring/organizations-and-groups/index.html +++ b/docs/authoring/organizations-and-groups/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/authoring/organizations-and-groups/index.html.gz b/docs/authoring/organizations-and-groups/index.html.gz index 8295a2d71..560dcd577 100644 Binary files a/docs/authoring/organizations-and-groups/index.html.gz and b/docs/authoring/organizations-and-groups/index.html.gz differ diff --git a/docs/authoring/taxonomies/index.html b/docs/authoring/taxonomies/index.html index fff00c948..2db097aca 100644 --- a/docs/authoring/taxonomies/index.html +++ b/docs/authoring/taxonomies/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/authoring/taxonomies/index.html.gz b/docs/authoring/taxonomies/index.html.gz index f11f018ab..fa5682e4e 100644 Binary files a/docs/authoring/taxonomies/index.html.gz and b/docs/authoring/taxonomies/index.html.gz differ diff --git a/docs/authoring/users-and-groups/index.html b/docs/authoring/users-and-groups/index.html index 94cb022b3..3269d5042 100644 --- a/docs/authoring/users-and-groups/index.html +++ b/docs/authoring/users-and-groups/index.html @@ -20,7 +20,7 @@ - + @@ -42,6 +42,6 @@ →

- + diff --git a/docs/authoring/users-and-groups/index.html.gz b/docs/authoring/users-and-groups/index.html.gz index b17fd6f3f..d40dc0fcc 100644 Binary files a/docs/authoring/users-and-groups/index.html.gz and b/docs/authoring/users-and-groups/index.html.gz differ diff --git a/docs/dev/cass-configuration/index.html b/docs/dev/cass-configuration/index.html index 344bd11ae..ef6fd692a 100644 --- a/docs/dev/cass-configuration/index.html +++ b/docs/dev/cass-configuration/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/cass-configuration/index.html.gz b/docs/dev/cass-configuration/index.html.gz index 5b1010ec9..6ed10709e 100644 Binary files a/docs/dev/cass-configuration/index.html.gz and b/docs/dev/cass-configuration/index.html.gz differ diff --git a/docs/dev/cass-installation/index.html b/docs/dev/cass-installation/index.html index d3b89d685..0744c39b9 100644 --- a/docs/dev/cass-installation/index.html +++ b/docs/dev/cass-installation/index.html @@ -20,7 +20,7 @@ - + @@ -55,6 +55,6 @@ →

- + diff --git a/docs/dev/cass-installation/index.html.gz b/docs/dev/cass-installation/index.html.gz index 6a87f2e7b..82f0c976f 100644 Binary files a/docs/dev/cass-installation/index.html.gz and b/docs/dev/cass-installation/index.html.gz differ diff --git a/docs/dev/cass-library-hello-world/csharp/index.html b/docs/dev/cass-library-hello-world/csharp/index.html index 8716a5bc2..18fe20426 100644 --- a/docs/dev/cass-library-hello-world/csharp/index.html +++ b/docs/dev/cass-library-hello-world/csharp/index.html @@ -20,7 +20,7 @@ - + @@ -67,6 +67,6 @@ →

- + diff --git a/docs/dev/cass-library-hello-world/csharp/index.html.gz b/docs/dev/cass-library-hello-world/csharp/index.html.gz index d58dced30..0130fbbc1 100644 Binary files a/docs/dev/cass-library-hello-world/csharp/index.html.gz and b/docs/dev/cass-library-hello-world/csharp/index.html.gz differ diff --git a/docs/dev/cass-library-hello-world/index.html b/docs/dev/cass-library-hello-world/index.html index 22af091dd..73452947c 100644 --- a/docs/dev/cass-library-hello-world/index.html +++ b/docs/dev/cass-library-hello-world/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/cass-library-hello-world/index.html.gz b/docs/dev/cass-library-hello-world/index.html.gz index d1c9c4975..4202a89f4 100644 Binary files a/docs/dev/cass-library-hello-world/index.html.gz and b/docs/dev/cass-library-hello-world/index.html.gz differ diff --git a/docs/dev/cass-library-hello-world/java/index.html b/docs/dev/cass-library-hello-world/java/index.html index 997d26282..126d61305 100644 --- a/docs/dev/cass-library-hello-world/java/index.html +++ b/docs/dev/cass-library-hello-world/java/index.html @@ -20,7 +20,7 @@ - + @@ -234,6 +234,6 @@ →

- + diff --git a/docs/dev/cass-library-hello-world/java/index.html.gz b/docs/dev/cass-library-hello-world/java/index.html.gz index bf9cb8879..08683b095 100644 Binary files a/docs/dev/cass-library-hello-world/java/index.html.gz and b/docs/dev/cass-library-hello-world/java/index.html.gz differ diff --git a/docs/dev/cass-library-hello-world/javascript/index.html b/docs/dev/cass-library-hello-world/javascript/index.html index ea2ce3a38..7bc75783c 100644 --- a/docs/dev/cass-library-hello-world/javascript/index.html +++ b/docs/dev/cass-library-hello-world/javascript/index.html @@ -20,7 +20,7 @@ - + @@ -86,6 +86,6 @@ →

- + diff --git a/docs/dev/cass-library-hello-world/javascript/index.html.gz b/docs/dev/cass-library-hello-world/javascript/index.html.gz index f683ece65..f9e33bb5b 100644 Binary files a/docs/dev/cass-library-hello-world/javascript/index.html.gz and b/docs/dev/cass-library-hello-world/javascript/index.html.gz differ diff --git a/docs/dev/cass-library-hello-world/node-js/index.html b/docs/dev/cass-library-hello-world/node-js/index.html index 62727214b..824710017 100644 --- a/docs/dev/cass-library-hello-world/node-js/index.html +++ b/docs/dev/cass-library-hello-world/node-js/index.html @@ -20,7 +20,7 @@ - + @@ -66,6 +66,6 @@ →

- + diff --git a/docs/dev/cass-library-hello-world/node-js/index.html.gz b/docs/dev/cass-library-hello-world/node-js/index.html.gz index 98b2b057e..0c9264448 100644 Binary files a/docs/dev/cass-library-hello-world/node-js/index.html.gz and b/docs/dev/cass-library-hello-world/node-js/index.html.gz differ diff --git a/docs/dev/cass-library-hello-world/php/index.html b/docs/dev/cass-library-hello-world/php/index.html index e9cbddcd2..4f856db71 100644 --- a/docs/dev/cass-library-hello-world/php/index.html +++ b/docs/dev/cass-library-hello-world/php/index.html @@ -20,7 +20,7 @@ - + @@ -50,6 +50,6 @@ →

- + diff --git a/docs/dev/cass-library-hello-world/php/index.html.gz b/docs/dev/cass-library-hello-world/php/index.html.gz index a13c53426..6d8b2197f 100644 Binary files a/docs/dev/cass-library-hello-world/php/index.html.gz and b/docs/dev/cass-library-hello-world/php/index.html.gz differ diff --git a/docs/dev/contributing/index.html b/docs/dev/contributing/index.html index ca422e203..d56055cdd 100644 --- a/docs/dev/contributing/index.html +++ b/docs/dev/contributing/index.html @@ -20,7 +20,7 @@ - + @@ -37,6 +37,6 @@

- + diff --git a/docs/dev/contributing/index.html.gz b/docs/dev/contributing/index.html.gz index cf5b680d9..f956adf3e 100644 Binary files a/docs/dev/contributing/index.html.gz and b/docs/dev/contributing/index.html.gz differ diff --git a/docs/dev/design-principles/index.html b/docs/dev/design-principles/index.html index c14f2e7dd..52cd2f2ce 100644 --- a/docs/dev/design-principles/index.html +++ b/docs/dev/design-principles/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/design-principles/index.html.gz b/docs/dev/design-principles/index.html.gz index 6de135dd9..2de5d9e29 100644 Binary files a/docs/dev/design-principles/index.html.gz and b/docs/dev/design-principles/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/asn/index.html b/docs/dev/extending-cass/adapters/asn/index.html index 574b62f12..bbe69aeb5 100644 --- a/docs/dev/extending-cass/adapters/asn/index.html +++ b/docs/dev/extending-cass/adapters/asn/index.html @@ -20,7 +20,7 @@ - + @@ -45,6 +45,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/asn/index.html.gz b/docs/dev/extending-cass/adapters/asn/index.html.gz index 2f54632cf..f35af5295 100644 Binary files a/docs/dev/extending-cass/adapters/asn/index.html.gz and b/docs/dev/extending-cass/adapters/asn/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/ceasn/index.html b/docs/dev/extending-cass/adapters/ceasn/index.html index f03756879..15ff49317 100644 --- a/docs/dev/extending-cass/adapters/ceasn/index.html +++ b/docs/dev/extending-cass/adapters/ceasn/index.html @@ -20,7 +20,7 @@ - + @@ -45,6 +45,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/ceasn/index.html.gz b/docs/dev/extending-cass/adapters/ceasn/index.html.gz index 783540e78..27100a6d1 100644 Binary files a/docs/dev/extending-cass/adapters/ceasn/index.html.gz and b/docs/dev/extending-cass/adapters/ceasn/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/ims-case/index.html b/docs/dev/extending-cass/adapters/ims-case/index.html index e973718de..2013aa183 100644 --- a/docs/dev/extending-cass/adapters/ims-case/index.html +++ b/docs/dev/extending-cass/adapters/ims-case/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/ims-case/index.html.gz b/docs/dev/extending-cass/adapters/ims-case/index.html.gz index aa82777c6..f8bac8b27 100644 Binary files a/docs/dev/extending-cass/adapters/ims-case/index.html.gz and b/docs/dev/extending-cass/adapters/ims-case/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/ims-open-badge/index.html b/docs/dev/extending-cass/adapters/ims-open-badge/index.html index ac75fdc4e..94cac154e 100644 --- a/docs/dev/extending-cass/adapters/ims-open-badge/index.html +++ b/docs/dev/extending-cass/adapters/ims-open-badge/index.html @@ -20,7 +20,7 @@ - + @@ -51,6 +51,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/ims-open-badge/index.html.gz b/docs/dev/extending-cass/adapters/ims-open-badge/index.html.gz index 4935d4efe..b21d939d6 100644 Binary files a/docs/dev/extending-cass/adapters/ims-open-badge/index.html.gz and b/docs/dev/extending-cass/adapters/ims-open-badge/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/index.html b/docs/dev/extending-cass/adapters/index.html index 1c7247843..c34c65034 100644 --- a/docs/dev/extending-cass/adapters/index.html +++ b/docs/dev/extending-cass/adapters/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/index.html.gz b/docs/dev/extending-cass/adapters/index.html.gz index 4d8eb8bbe..5e2ffd20b 100644 Binary files a/docs/dev/extending-cass/adapters/index.html.gz and b/docs/dev/extending-cass/adapters/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/moodle/index.html b/docs/dev/extending-cass/adapters/moodle/index.html index 64314c483..09d2a9a8d 100644 --- a/docs/dev/extending-cass/adapters/moodle/index.html +++ b/docs/dev/extending-cass/adapters/moodle/index.html @@ -20,7 +20,7 @@ - + @@ -50,6 +50,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/moodle/index.html.gz b/docs/dev/extending-cass/adapters/moodle/index.html.gz index 9e76ebf82..60aa3bba8 100644 Binary files a/docs/dev/extending-cass/adapters/moodle/index.html.gz and b/docs/dev/extending-cass/adapters/moodle/index.html.gz differ diff --git a/docs/dev/extending-cass/adapters/xapi/index.html b/docs/dev/extending-cass/adapters/xapi/index.html index 7b3969446..56b4fdc6c 100644 --- a/docs/dev/extending-cass/adapters/xapi/index.html +++ b/docs/dev/extending-cass/adapters/xapi/index.html @@ -20,7 +20,7 @@ - + @@ -106,6 +106,6 @@ →

- + diff --git a/docs/dev/extending-cass/adapters/xapi/index.html.gz b/docs/dev/extending-cass/adapters/xapi/index.html.gz index 652746781..23759a023 100644 Binary files a/docs/dev/extending-cass/adapters/xapi/index.html.gz and b/docs/dev/extending-cass/adapters/xapi/index.html.gz differ diff --git a/docs/dev/extending-cass/index.html b/docs/dev/extending-cass/index.html index b3085d315..8f6495d63 100644 --- a/docs/dev/extending-cass/index.html +++ b/docs/dev/extending-cass/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/extending-cass/index.html.gz b/docs/dev/extending-cass/index.html.gz index 9faa89581..73997be21 100644 Binary files a/docs/dev/extending-cass/index.html.gz and b/docs/dev/extending-cass/index.html.gz differ diff --git a/docs/dev/extending-cass/working-with-other-schemas/index.html b/docs/dev/extending-cass/working-with-other-schemas/index.html index 8126d5bd2..442f38b37 100644 --- a/docs/dev/extending-cass/working-with-other-schemas/index.html +++ b/docs/dev/extending-cass/working-with-other-schemas/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/extending-cass/working-with-other-schemas/index.html.gz b/docs/dev/extending-cass/working-with-other-schemas/index.html.gz index 1005ad597..1a2bc1c3e 100644 Binary files a/docs/dev/extending-cass/working-with-other-schemas/index.html.gz and b/docs/dev/extending-cass/working-with-other-schemas/index.html.gz differ diff --git a/docs/dev/fundamentals/assertion-processing/index.html b/docs/dev/fundamentals/assertion-processing/index.html index 2081bae36..843a94b2c 100644 --- a/docs/dev/fundamentals/assertion-processing/index.html +++ b/docs/dev/fundamentals/assertion-processing/index.html @@ -20,7 +20,7 @@ - + @@ -60,6 +60,6 @@ →

- + diff --git a/docs/dev/fundamentals/assertion-processing/index.html.gz b/docs/dev/fundamentals/assertion-processing/index.html.gz index b5664886f..504839fa4 100644 Binary files a/docs/dev/fundamentals/assertion-processing/index.html.gz and b/docs/dev/fundamentals/assertion-processing/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/assertion/index.html b/docs/dev/fundamentals/cass-objects/assertion/index.html index d0ac343fb..9f132a738 100644 --- a/docs/dev/fundamentals/cass-objects/assertion/index.html +++ b/docs/dev/fundamentals/cass-objects/assertion/index.html @@ -20,7 +20,7 @@ - + @@ -122,6 +122,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-objects/assertion/index.html.gz b/docs/dev/fundamentals/cass-objects/assertion/index.html.gz index f1a080b83..b8ce9cefa 100644 Binary files a/docs/dev/fundamentals/cass-objects/assertion/index.html.gz and b/docs/dev/fundamentals/cass-objects/assertion/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/competency/index.html b/docs/dev/fundamentals/cass-objects/competency/index.html index c602cf701..e53bbeee4 100644 --- a/docs/dev/fundamentals/cass-objects/competency/index.html +++ b/docs/dev/fundamentals/cass-objects/competency/index.html @@ -20,7 +20,7 @@ - + @@ -94,6 +94,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-objects/competency/index.html.gz b/docs/dev/fundamentals/cass-objects/competency/index.html.gz index 6f7af61b2..e3e3c07d2 100644 Binary files a/docs/dev/fundamentals/cass-objects/competency/index.html.gz and b/docs/dev/fundamentals/cass-objects/competency/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/framework/index.html b/docs/dev/fundamentals/cass-objects/framework/index.html index edb150363..e4e970e12 100644 --- a/docs/dev/fundamentals/cass-objects/framework/index.html +++ b/docs/dev/fundamentals/cass-objects/framework/index.html @@ -20,7 +20,7 @@ - + @@ -110,6 +110,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-objects/framework/index.html.gz b/docs/dev/fundamentals/cass-objects/framework/index.html.gz index 3e7fd8a8f..a3a7967dd 100644 Binary files a/docs/dev/fundamentals/cass-objects/framework/index.html.gz and b/docs/dev/fundamentals/cass-objects/framework/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/index.html b/docs/dev/fundamentals/cass-objects/index.html index 8e81ad12b..7b4968f9e 100644 --- a/docs/dev/fundamentals/cass-objects/index.html +++ b/docs/dev/fundamentals/cass-objects/index.html @@ -20,7 +20,7 @@ - + @@ -75,6 +75,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-objects/index.html.gz b/docs/dev/fundamentals/cass-objects/index.html.gz index 4257344fd..eb0c21f71 100644 Binary files a/docs/dev/fundamentals/cass-objects/index.html.gz and b/docs/dev/fundamentals/cass-objects/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/level/index.html b/docs/dev/fundamentals/cass-objects/level/index.html index 39a73ce73..6c28791e1 100644 --- a/docs/dev/fundamentals/cass-objects/level/index.html +++ b/docs/dev/fundamentals/cass-objects/level/index.html @@ -20,7 +20,7 @@ - + @@ -92,6 +92,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-objects/level/index.html.gz b/docs/dev/fundamentals/cass-objects/level/index.html.gz index 1c393cda8..907d2bf17 100644 Binary files a/docs/dev/fundamentals/cass-objects/level/index.html.gz and b/docs/dev/fundamentals/cass-objects/level/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/relation/index.html b/docs/dev/fundamentals/cass-objects/relation/index.html index 44a87974e..459b19564 100644 --- a/docs/dev/fundamentals/cass-objects/relation/index.html +++ b/docs/dev/fundamentals/cass-objects/relation/index.html @@ -20,7 +20,7 @@ - + @@ -87,6 +87,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-objects/relation/index.html.gz b/docs/dev/fundamentals/cass-objects/relation/index.html.gz index f0547be48..944c3bfe1 100644 Binary files a/docs/dev/fundamentals/cass-objects/relation/index.html.gz and b/docs/dev/fundamentals/cass-objects/relation/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-objects/rollup-rule/index.html b/docs/dev/fundamentals/cass-objects/rollup-rule/index.html index 84bd95dd7..6f55c8d00 100644 --- a/docs/dev/fundamentals/cass-objects/rollup-rule/index.html +++ b/docs/dev/fundamentals/cass-objects/rollup-rule/index.html @@ -20,7 +20,7 @@ - + @@ -33,6 +33,6 @@

# RollupRule

TODO

- + diff --git a/docs/dev/fundamentals/cass-objects/rollup-rule/index.html.gz b/docs/dev/fundamentals/cass-objects/rollup-rule/index.html.gz index 62bd68b12..11375d651 100644 Binary files a/docs/dev/fundamentals/cass-objects/rollup-rule/index.html.gz and b/docs/dev/fundamentals/cass-objects/rollup-rule/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-repo-api/create/index.html b/docs/dev/fundamentals/cass-repo-api/create/index.html index 10bb45caa..7a073903f 100644 --- a/docs/dev/fundamentals/cass-repo-api/create/index.html +++ b/docs/dev/fundamentals/cass-repo-api/create/index.html @@ -20,7 +20,7 @@ - + @@ -143,6 +143,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-repo-api/create/index.html.gz b/docs/dev/fundamentals/cass-repo-api/create/index.html.gz index d908b2bc8..5c8023dd7 100644 Binary files a/docs/dev/fundamentals/cass-repo-api/create/index.html.gz and b/docs/dev/fundamentals/cass-repo-api/create/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-repo-api/delete/index.html b/docs/dev/fundamentals/cass-repo-api/delete/index.html index cbf858053..39c786071 100644 --- a/docs/dev/fundamentals/cass-repo-api/delete/index.html +++ b/docs/dev/fundamentals/cass-repo-api/delete/index.html @@ -20,7 +20,7 @@ - + @@ -78,6 +78,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-repo-api/delete/index.html.gz b/docs/dev/fundamentals/cass-repo-api/delete/index.html.gz index 16eedb5e7..da33d6a25 100644 Binary files a/docs/dev/fundamentals/cass-repo-api/delete/index.html.gz and b/docs/dev/fundamentals/cass-repo-api/delete/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-repo-api/get/index.html b/docs/dev/fundamentals/cass-repo-api/get/index.html index fb9045505..42f24a43e 100644 --- a/docs/dev/fundamentals/cass-repo-api/get/index.html +++ b/docs/dev/fundamentals/cass-repo-api/get/index.html @@ -20,7 +20,7 @@ - + @@ -114,6 +114,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-repo-api/get/index.html.gz b/docs/dev/fundamentals/cass-repo-api/get/index.html.gz index fc831ea16..ed1d1298f 100644 Binary files a/docs/dev/fundamentals/cass-repo-api/get/index.html.gz and b/docs/dev/fundamentals/cass-repo-api/get/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-repo-api/index.html b/docs/dev/fundamentals/cass-repo-api/index.html index 773100692..f9be0c329 100644 --- a/docs/dev/fundamentals/cass-repo-api/index.html +++ b/docs/dev/fundamentals/cass-repo-api/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-repo-api/index.html.gz b/docs/dev/fundamentals/cass-repo-api/index.html.gz index 44f51ef4c..e9d096114 100644 Binary files a/docs/dev/fundamentals/cass-repo-api/index.html.gz and b/docs/dev/fundamentals/cass-repo-api/index.html.gz differ diff --git a/docs/dev/fundamentals/cass-repo-api/search/index.html b/docs/dev/fundamentals/cass-repo-api/search/index.html index 246c1bd8f..c6a3f2366 100644 --- a/docs/dev/fundamentals/cass-repo-api/search/index.html +++ b/docs/dev/fundamentals/cass-repo-api/search/index.html @@ -20,7 +20,7 @@ - + @@ -84,6 +84,6 @@ →

- + diff --git a/docs/dev/fundamentals/cass-repo-api/search/index.html.gz b/docs/dev/fundamentals/cass-repo-api/search/index.html.gz index b567dde4a..53c9c2b4c 100644 Binary files a/docs/dev/fundamentals/cass-repo-api/search/index.html.gz and b/docs/dev/fundamentals/cass-repo-api/search/index.html.gz differ diff --git a/docs/dev/fundamentals/contacts/index.html b/docs/dev/fundamentals/contacts/index.html index 4b454db4f..ef2543433 100644 --- a/docs/dev/fundamentals/contacts/index.html +++ b/docs/dev/fundamentals/contacts/index.html @@ -20,7 +20,7 @@ - + @@ -33,6 +33,6 @@

# Contacts

TODO

- + diff --git a/docs/dev/fundamentals/contacts/index.html.gz b/docs/dev/fundamentals/contacts/index.html.gz index ea849b897..f4cd20ea9 100644 Binary files a/docs/dev/fundamentals/contacts/index.html.gz and b/docs/dev/fundamentals/contacts/index.html.gz differ diff --git a/docs/dev/fundamentals/deployment/index.html b/docs/dev/fundamentals/deployment/index.html index 5befb1688..5658702fc 100644 --- a/docs/dev/fundamentals/deployment/index.html +++ b/docs/dev/fundamentals/deployment/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/fundamentals/deployment/index.html.gz b/docs/dev/fundamentals/deployment/index.html.gz index 7ec809b58..d404a3dc0 100644 Binary files a/docs/dev/fundamentals/deployment/index.html.gz and b/docs/dev/fundamentals/deployment/index.html.gz differ diff --git a/docs/dev/fundamentals/http-and-protocols/index.html b/docs/dev/fundamentals/http-and-protocols/index.html index 20813f996..927c623d1 100644 --- a/docs/dev/fundamentals/http-and-protocols/index.html +++ b/docs/dev/fundamentals/http-and-protocols/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/fundamentals/http-and-protocols/index.html.gz b/docs/dev/fundamentals/http-and-protocols/index.html.gz index e724da148..32f98aee9 100644 Binary files a/docs/dev/fundamentals/http-and-protocols/index.html.gz and b/docs/dev/fundamentals/http-and-protocols/index.html.gz differ diff --git a/docs/dev/fundamentals/identities-and-login/index.html b/docs/dev/fundamentals/identities-and-login/index.html index 3b8759510..22c8a6a92 100644 --- a/docs/dev/fundamentals/identities-and-login/index.html +++ b/docs/dev/fundamentals/identities-and-login/index.html @@ -20,7 +20,7 @@ - + @@ -100,6 +100,6 @@ →

- + diff --git a/docs/dev/fundamentals/identities-and-login/index.html.gz b/docs/dev/fundamentals/identities-and-login/index.html.gz index 29e986590..6f3774537 100644 Binary files a/docs/dev/fundamentals/identities-and-login/index.html.gz and b/docs/dev/fundamentals/identities-and-login/index.html.gz differ diff --git a/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html b/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html index ff56970f6..5dcaaa11a 100644 --- a/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html +++ b/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html @@ -20,7 +20,7 @@ - + @@ -55,6 +55,6 @@ →

- + diff --git a/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html.gz b/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html.gz index d6a2d14dd..0b99aa5bf 100644 Binary files a/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html.gz and b/docs/dev/fundamentals/json-ld-and-rdf-formats/index.html.gz differ diff --git a/docs/dev/fundamentals/repositories/index.html b/docs/dev/fundamentals/repositories/index.html index b751c7f9d..83c421008 100644 --- a/docs/dev/fundamentals/repositories/index.html +++ b/docs/dev/fundamentals/repositories/index.html @@ -20,7 +20,7 @@ - + @@ -54,6 +54,6 @@ →

- + diff --git a/docs/dev/fundamentals/repositories/index.html.gz b/docs/dev/fundamentals/repositories/index.html.gz index 307e4f64f..895f949e3 100644 Binary files a/docs/dev/fundamentals/repositories/index.html.gz and b/docs/dev/fundamentals/repositories/index.html.gz differ diff --git a/docs/dev/fundamentals/search/index.html b/docs/dev/fundamentals/search/index.html index f4c039015..f08ff1c85 100644 --- a/docs/dev/fundamentals/search/index.html +++ b/docs/dev/fundamentals/search/index.html @@ -20,7 +20,7 @@ - + @@ -63,6 +63,6 @@ →

- + diff --git a/docs/dev/fundamentals/search/index.html.gz b/docs/dev/fundamentals/search/index.html.gz index 2de3c8e58..0b291c627 100644 Binary files a/docs/dev/fundamentals/search/index.html.gz and b/docs/dev/fundamentals/search/index.html.gz differ diff --git a/docs/dev/fundamentals/urls-and-linked-data/index.html b/docs/dev/fundamentals/urls-and-linked-data/index.html index 84706bbc8..258537aff 100644 --- a/docs/dev/fundamentals/urls-and-linked-data/index.html +++ b/docs/dev/fundamentals/urls-and-linked-data/index.html @@ -20,7 +20,7 @@ - + @@ -48,6 +48,6 @@ →

- + diff --git a/docs/dev/fundamentals/urls-and-linked-data/index.html.gz b/docs/dev/fundamentals/urls-and-linked-data/index.html.gz index 0927c052e..857ec218e 100644 Binary files a/docs/dev/fundamentals/urls-and-linked-data/index.html.gz and b/docs/dev/fundamentals/urls-and-linked-data/index.html.gz differ diff --git a/docs/dev/links-and-references/index.html b/docs/dev/links-and-references/index.html index c6975cb04..1d79aae01 100644 --- a/docs/dev/links-and-references/index.html +++ b/docs/dev/links-and-references/index.html @@ -20,7 +20,7 @@ - + @@ -46,6 +46,6 @@ →

- + diff --git a/docs/dev/links-and-references/index.html.gz b/docs/dev/links-and-references/index.html.gz index 6bdd12dc6..a437e43a9 100644 Binary files a/docs/dev/links-and-references/index.html.gz and b/docs/dev/links-and-references/index.html.gz differ diff --git a/docs/dev/overview/index.html b/docs/dev/overview/index.html index 5e9744ad5..d2ce83e6d 100644 --- a/docs/dev/overview/index.html +++ b/docs/dev/overview/index.html @@ -20,7 +20,7 @@ - + @@ -44,6 +44,6 @@ →

- + diff --git a/docs/dev/overview/index.html.gz b/docs/dev/overview/index.html.gz index be492def5..1bd3f90a9 100644 Binary files a/docs/dev/overview/index.html.gz and b/docs/dev/overview/index.html.gz differ diff --git a/docs/dev/performance/index.html b/docs/dev/performance/index.html index 853385946..4e242dfb2 100644 --- a/docs/dev/performance/index.html +++ b/docs/dev/performance/index.html @@ -20,7 +20,7 @@ - + @@ -70,6 +70,6 @@ →

- + diff --git a/docs/dev/performance/index.html.gz b/docs/dev/performance/index.html.gz index 331a6d4a4..f4c119f1a 100644 Binary files a/docs/dev/performance/index.html.gz and b/docs/dev/performance/index.html.gz differ diff --git a/docs/dev/security/kbac-specification/index.html b/docs/dev/security/kbac-specification/index.html index 29a3b8ce5..8c9c39e3d 100644 --- a/docs/dev/security/kbac-specification/index.html +++ b/docs/dev/security/kbac-specification/index.html @@ -20,7 +20,7 @@ - + @@ -330,6 +330,6 @@ →

- + diff --git a/docs/dev/security/kbac-specification/index.html.gz b/docs/dev/security/kbac-specification/index.html.gz index a04c925d9..f186c4db7 100644 Binary files a/docs/dev/security/kbac-specification/index.html.gz and b/docs/dev/security/kbac-specification/index.html.gz differ diff --git a/docs/dev/security/kbac-threat-model/index.html b/docs/dev/security/kbac-threat-model/index.html index cd0474d6b..1699cf890 100644 --- a/docs/dev/security/kbac-threat-model/index.html +++ b/docs/dev/security/kbac-threat-model/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/security/kbac-threat-model/index.html.gz b/docs/dev/security/kbac-threat-model/index.html.gz index 92cdd9704..ea4ce8cad 100644 Binary files a/docs/dev/security/kbac-threat-model/index.html.gz and b/docs/dev/security/kbac-threat-model/index.html.gz differ diff --git a/docs/dev/tutorials/align-assessments-to-competencies/index.html b/docs/dev/tutorials/align-assessments-to-competencies/index.html index 08fc6d7d8..67f1ee5e9 100644 --- a/docs/dev/tutorials/align-assessments-to-competencies/index.html +++ b/docs/dev/tutorials/align-assessments-to-competencies/index.html @@ -20,7 +20,7 @@ - + @@ -106,6 +106,6 @@ →

- + diff --git a/docs/dev/tutorials/align-assessments-to-competencies/index.html.gz b/docs/dev/tutorials/align-assessments-to-competencies/index.html.gz index 2720b5ece..14f951ad5 100644 Binary files a/docs/dev/tutorials/align-assessments-to-competencies/index.html.gz and b/docs/dev/tutorials/align-assessments-to-competencies/index.html.gz differ diff --git a/docs/dev/tutorials/align-resources-to-competencies/index.html b/docs/dev/tutorials/align-resources-to-competencies/index.html index cc236e18d..fcf7ac9f7 100644 --- a/docs/dev/tutorials/align-resources-to-competencies/index.html +++ b/docs/dev/tutorials/align-resources-to-competencies/index.html @@ -20,7 +20,7 @@ - + @@ -62,6 +62,6 @@ →

- + diff --git a/docs/dev/tutorials/align-resources-to-competencies/index.html.gz b/docs/dev/tutorials/align-resources-to-competencies/index.html.gz index fe86a68b0..ae462596b 100644 Binary files a/docs/dev/tutorials/align-resources-to-competencies/index.html.gz and b/docs/dev/tutorials/align-resources-to-competencies/index.html.gz differ diff --git a/docs/dev/tutorials/import-csv/index.html b/docs/dev/tutorials/import-csv/index.html index 6197fe5f1..42a31b79c 100644 --- a/docs/dev/tutorials/import-csv/index.html +++ b/docs/dev/tutorials/import-csv/index.html @@ -20,7 +20,7 @@ - + @@ -102,6 +102,6 @@ →

- + diff --git a/docs/dev/tutorials/import-csv/index.html.gz b/docs/dev/tutorials/import-csv/index.html.gz index 39d47ccc0..5f354546c 100644 Binary files a/docs/dev/tutorials/import-csv/index.html.gz and b/docs/dev/tutorials/import-csv/index.html.gz differ diff --git a/docs/dev/tutorials/index.html b/docs/dev/tutorials/index.html index d87fe165d..cde46633f 100644 --- a/docs/dev/tutorials/index.html +++ b/docs/dev/tutorials/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/dev/tutorials/index.html.gz b/docs/dev/tutorials/index.html.gz index 23a93c4d3..0b748af62 100644 Binary files a/docs/dev/tutorials/index.html.gz and b/docs/dev/tutorials/index.html.gz differ diff --git a/docs/guide/assertion-processing/index.html b/docs/guide/assertion-processing/index.html index 978a16551..4e72f7e75 100644 --- a/docs/guide/assertion-processing/index.html +++ b/docs/guide/assertion-processing/index.html @@ -20,7 +20,7 @@ - + @@ -50,6 +50,6 @@ →

- + diff --git a/docs/guide/assertion-processing/index.html.gz b/docs/guide/assertion-processing/index.html.gz index af319440c..03cf54a0f 100644 Binary files a/docs/guide/assertion-processing/index.html.gz and b/docs/guide/assertion-processing/index.html.gz differ diff --git a/docs/guide/interoperability/index.html b/docs/guide/interoperability/index.html index 3611dc8b0..14f3eb1c4 100644 --- a/docs/guide/interoperability/index.html +++ b/docs/guide/interoperability/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@ →

- + diff --git a/docs/guide/interoperability/index.html.gz b/docs/guide/interoperability/index.html.gz index e822ca0ac..6a767ff23 100644 Binary files a/docs/guide/interoperability/index.html.gz and b/docs/guide/interoperability/index.html.gz differ diff --git a/docs/guide/introduction/index.html b/docs/guide/introduction/index.html index 8956f8d61..6c86ea852 100644 --- a/docs/guide/introduction/index.html +++ b/docs/guide/introduction/index.html @@ -20,7 +20,7 @@ - + @@ -37,6 +37,6 @@ →

- + diff --git a/docs/guide/introduction/index.html.gz b/docs/guide/introduction/index.html.gz index 8ffbface0..d72119a8e 100644 Binary files a/docs/guide/introduction/index.html.gz and b/docs/guide/introduction/index.html.gz differ diff --git a/docs/guide/overview/index.html b/docs/guide/overview/index.html index b15103b7f..1bf5591f5 100644 --- a/docs/guide/overview/index.html +++ b/docs/guide/overview/index.html @@ -20,7 +20,7 @@ - + @@ -43,6 +43,6 @@ →

- + diff --git a/docs/guide/overview/index.html.gz b/docs/guide/overview/index.html.gz index b77e10114..85c2e6621 100644 Binary files a/docs/guide/overview/index.html.gz and b/docs/guide/overview/index.html.gz differ diff --git a/docs/index.html b/docs/index.html index bda68f6ea..9052d5896 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@ - + @@ -41,6 +41,6 @@

- + diff --git a/docs/index.html.gz b/docs/index.html.gz index 839f7aff3..9afe713a2 100644 Binary files a/docs/index.html.gz and b/docs/index.html.gz differ diff --git a/index.html b/index.html index a25b1f29f..2f6e78d22 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -CASS Editor VERSION
\ No newline at end of file +CASS Editor VERSION
\ No newline at end of file diff --git a/index.html.gz b/index.html.gz index f62cf92a5..f7fa0431e 100644 Binary files a/index.html.gz and b/index.html.gz differ diff --git a/js/app.5f527677.js b/js/app.20343a4f.js similarity index 99% rename from js/app.5f527677.js rename to js/app.20343a4f.js index 3c209bc51..cb79b3547 100644 --- a/js/app.5f527677.js +++ b/js/app.20343a4f.js @@ -7137,7 +7137,7 @@ jsonld.documentLoader = /*#__PURE__*/function () { /***/ "9224": /***/ (function(module) { -module.exports = JSON.parse("{\"a\":\"1.5.63\"}"); +module.exports = JSON.parse("{\"a\":\"1.5.64\"}"); /***/ }), @@ -7156,4 +7156,4 @@ module.exports = JSON.parse("{\"a\":\"1.5.63\"}"); /***/ }) /******/ }); -//# sourceMappingURL=app.5f527677.js.map \ No newline at end of file +//# sourceMappingURL=app.20343a4f.js.map \ No newline at end of file diff --git a/js/app.5f527677.js.gz b/js/app.20343a4f.js.gz similarity index 99% rename from js/app.5f527677.js.gz rename to js/app.20343a4f.js.gz index 73431f624..2be3addee 100644 Binary files a/js/app.5f527677.js.gz and b/js/app.20343a4f.js.gz differ diff --git a/js/app.5f527677.js.map b/js/app.20343a4f.js.map similarity index 99% rename from js/app.5f527677.js.map rename to js/app.20343a4f.js.map index 7f36ac4dd..472d5cc81 100644 --- a/js/app.5f527677.js.map +++ b/js/app.20343a4f.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///crypto (ignored)?680d","webpack:///buffer (ignored)?3b56","webpack:///buffer (ignored)?9f36","webpack:///./util.inspect (ignored)","webpack:///rdf-canonize-native (ignored)","webpack:///got (ignored)","webpack:///./src/components/modals/DynamicModal.vue","webpack:///src/components/modals/DynamicModal.vue","webpack:///./src/components/modals/DynamicModal.vue?2a07","webpack:///./src/components/modals/DynamicModal.vue?da8f","webpack:///./src/App.vue","webpack:///./src/App.vue?11bf","webpack:///./src/App.vue?315a","webpack:///util (ignored)?9bcf","webpack:///./src/router.js","webpack:///./src/store/modules/editor.js","webpack:///./src/store/modules/app.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/crosswalk.js","webpack:///./src/store/modules/environment.js","webpack:///./src/store/modules/configuration.js","webpack:///./src/store/modules/featuresEnabled.js","webpack:///./src/store/index.js","webpack:///util (ignored)?6457","webpack:///./src/components/modals/DynamicModal.vue?79f9","webpack:///./src/scss/theme.scss?d965","webpack:///./src/main.js","webpack:///./src/App.vue?c0f3","webpack:///buffer (ignored)","webpack:///./src/components/modals/DynamicModal.vue?fef9","webpack:///crypto (ignored)","webpack:///util (ignored)","webpack:///src/App.vue","webpack:///./src/store/modules/lode.js","webpack:///./src/mixins/common.js","webpack:///util (ignored)?1ada","webpack:///./src/App.vue?a81e","webpack:///./src/scss/styles.scss?e7a7"],"names":["render","_vm","_c","_self","dynamicModal","tag","attrs","title","dynamicModalContent","on","createDirectory","$event","$emit","createAnotherDirectory","close","cancel","staticRenderFns","name","props","type","default","String","color","components","Share","MultiEdit","SearchModal","AddComment","DeleteCommentConfirm","DeleteDirectoryConfirm","SupportedImportDetails","Single","AddDirectory","DeleteConfigurationConfirm","FrameworkConfiguration","DeleteCompetencyConfirm","DeleteFrameworkConfirm","DeleteLevelConfirm","DeleteConceptConfirm","DeleteConceptSchemeConfirm","RemoveCompetencyConfirm","ExportOptionsModal","RequiredPropertyModal","DuplicateImport","ImportError","ShareAssertions","LogoutSuccess","MessageOfTheDay","data","computed","showModal","$store","getters","component","watch","class","editorClass","bannerMessage","staticClass","style","bannerStyle","_v","_s","_e","saveDirectory","saveDirectoryAndAddAnother","showSideNav","showRightAside","createNewFramework","createNewConceptScheme","createNewProgressionModel","createNewCollection","Vue","use","Router","base","process","scrollBehavior","to","from","savedPosition","hash","selector","offset","x","y","routes","path","_default","sidebar","topbar","alias","Vuex","state","framework","organization","selectedCompetency","queryParams","defaultLanguage","webSocketBackoff","selectCompetencyRelation","selectingCompetencies","private","newCompetency","newFramework","t3Profile","changedObject","configuration","commonPathIframe","iframeCompetencyPathInterframework","iframeConceptPath","addCommentAboutId","addCommentType","commentToEdit","commentToReply","frameworkCommentDataLoaded","frameworkCommentList","frameworkCommentPersonMap","commentsToDelete","commentScrollTo","editsToUndo","lastEditToUndo","recomputeHierarchy","recomputePrecedence","recomputePrecedenceAfterReorder","selectedCompetenciesAsProperties","refreshLevels","refreshAlignments","refreshProperties","conceptMode","collectionMode","progressionMode","cutId","copyId","paste","cutOrCopyContainerId","nodeInFocus","relations","setPropertyLevel","addAnother","itemToDelete","itemToRemove","itemToExport","manageAssertions","assertions","badgePk","me","subject","people","firstSearchProcessing","searchingAssertions","mutations","f","comp","params","lang","webSocketBackoffIncrease","_private","bool","r","id","config","val","setAddCommentAboutId","setAddCommentType","setCommentToEdit","setCommentToReply","setCommentsToDelete","clearFrameworkCommentData","setFrameworkCommentDataLoaded","setFrameworkCommentList","setFrameworkCommentPersonMap","setCommentScrollTo","addEditsToUndo","edits","push","setLastEditToUndo","edit","boolean","comps","obj","level","setItemToDelete","setItemToRemove","setItemToExport","setManageAssertions","setAssertions","removeAssertion","EcArray","setRemove","removeAssertionAtIndex","splice","addAssertion","setAdd","setBadgePk","setMe","setSubject","setPeople","setFirstSearchProcessing","setSearchingAssertions","actions","getDirectoryChildren","instance","directory","children","frameworks","apply","_toConsumableArray","resources","directories","context","commit","pop","getThing","payload","Promise","resolve","reject","url","EcRemote","urlAppend","server","service","upgradeHttpToHttps","fetch","headers","then","resp","success","catch","err","failure","searchForAssertions","doSearch","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","start","count","wrap","_callee2$","_context2","prev","next","abrupt","EcAssertion","search","window","repo","_ref2","_callee","results","_callee$","_context","length","stop","_x3","arguments","size","_x","_x2","eah","EcAsyncHelper","each","assertion","callback","assertionDateDecrypted","getAssertionDateAsync","date","appError","computeBecause","evidences","explanations","e","evidenceString","eoriginal","startsWith","JSON","parse","EcObject","isObject","verb","display","en","object","definition","result","Math","round","score","scaled","interactionType","text","original","failureFunc","EcRepository","get","isAny","ChooseAction","getTypes","creativeWork","sort","a","b","getMe","getSubject","namespaced","sideNavEnabled","rightAsideContent","rightAsideObject","canViewComments","canAddComments","pluginLastUpdate","pluginToLaunch","pluginToLaunchLastUpdate","showToolBar","commentsEnabled","versionsEnabled","draggingEnabled","isDragging","draggable","contentSection","searchTerm","quickFilters","applySearchTo","sortResults","refreshSearch","searchFrameworksInCompetencySearch","modal","objForShareModal","directoryList","selectedDirectory","searchingInDirectory","editDirectory","import","files","transition","status","fileType","firstImport","Boolean","errors","feedback","duplicates","skip","serverUrl","frameworkName","frameworkDescription","importCsv","nameColumn","descriptionColumn","scopeColumn","idColumn","sourceColumn","relationColumn","targetColumn","importText","csvColumns","csvRelationColumns","csvRelationFile","importModalParams","allowCancel","banner","message","background","motd","curatedPlugins","closeSideNav","closeRightAside","_rightAsideObject","encryptedType","t0","EcEncryptedValue","fromEncryptedValue","t1","sent","copyFrom","call","closeModal","value","importFiles","setCanViewComments","setCanAddComments","clearImportFiles","resetImport","descriptionCcolumn","importTransition","importFileType","importType","addImportError","clearImportErrors","importStatus","importAllowCancel","importFeedback","importDuplicates","importSkip","importFramework","importFrameworkName","importFrameworkNameColumn","frameworkNameColumn","importFrameworkScopeColumn","frameworkScopeColumn","importFrameworkIdColumn","frameworkIdColumn","importFrameworkDescription","importServerUrl","importUrl","importNameColumn","importDescriptionColumn","importScopeColumn","importSourceColumn","importTargetColumn","importRelationColumn","importIdColumn","singleQuickFilter","i","findIndex","filter","checked","clearSearchFilters","_i","_i2","selectDirectory","list","setBanner","setMotd","setCuratedPlugins","clearImport","refreshDirectories","directoryIds","paramObj","EcDirectory","dirs","canEditAny","EcIdentityManager","getMyPks","has","importErrors","filterByOwnedByMe","find","Array","isArray","filterByNotOwnedByMe","filterByConfigMatchDefault","bannerColor","bannerBackground","motdTitle","motdMessage","loggedOnPerson","repoInit","ssoLogin","ssoLogout","ssoPublicKey","lastLogin","personObj","ids","repositorySsoOptions","step","frameworkSource","frameworkSourceRelationships","frameworkTarget","frameworkTargetRelationships","relevantExistingAlignmentsMap","relevantExistingAlignmentsMapLastUpdate","alignedCompetenciesList","workingAlignmentsMap","source","targets","initialTargets","removedTargets","changed","alignmentsToSave","alignmentsToDelete","sourceState","targetState","targetNodesToHighlight","enabledRelationshipTypes","enabledRelationshipTypesLastUpdate","workingAlignmentsSource","c","workingAlignmentsTargets","workingAlignmentsType","s","t","populateAlignedCompetenciesList","alignedCompetencies","sourceComps","Object","keys","_sourceComps","sc","alignTypes","_alignTypes","scAt","targetIds","_i3","_targetIds","ti","populateWorkingAlignmentMap","sourceTypeAlignMap","_i4","_targetIds2","resetFrameworkSourceRelationships","resetFrameworkTargetRelationships","resetCrosswalkFrameworks","resetCrosswalkAlignmentsAndState","resetCrosswalk","resetWorkingAlignmentsMap","addWorkingAlignmentsTarget","remTargets","filteredRemovedTargets","shouldSetToChanged","_iterator","_createForOfIteratorHelper","_step","n","done","includes","removeWorkingAlignmentsTarget","filtered","target","_iterator2","_step2","removeAlignmentFromRelevantAlignmentsMap","alignProps","ream","addAlignmentToRelevantAlignmentsMap","ecaObj","relationType","removeAlignmentFromAlignmentsToSave","newAts","_iterator3","_step3","removeAlignmentFromAlignmentsToDelete","newAtd","_iterator4","_step4","appendAlignmentsToDelete","alignment","appendAlignmentsToSave","cassApiLocation","CONFIG_SEARCH_SIZE","DEFAULT_CONFIGURATION_TYPE","DEFAULT_CONFIGURATION_CONTEXT","LANG_STRING_RANGE","DEFAULT_HEADING","LEVEL_SEARCH_SIZE","PERSON_SEARCH_SIZE","DEFAULT_CUSTOM_PROPERTY_CONTEXT","DEFAULT_CUSTOM_PROPERTY_RANGE","defaultBrowserConfig","defaultBrowserConfigName","localDefaultBrowserConfig","configBusy","configList","configView","currentConfig","showConfirmDeleteConfigModal","showMustBeLoggedInModal","showBrowserConfigSetModal","configToDelete","availableConcepts","setConfigToDelete","setShowMustBeLoggedInModal","setShowBrowserConfigSetModal","setShowConfirmDeleteConfigModal","setCurrentConfig","setConfigView","setConfigList","setConfigBusy","setDefaultBrowserConfig","setDefaultBrowserConfigName","setLocalDefaultBrowserConfig","setAvailableConcepts","setAvailableTypes","availableTypes","GROUP_SEARCH_SIZE","crosswalkEnabled","userManagementEnabled","configurationsEnabled","searchByOwnerNameEnabled","pluginsEnabled","loginEnabled","legacyLoginEnabled","apiLoginEnabled","shareEnabled","shareLink","ownedByMe","Store","modules","lode","editor","app","user","crosswalk","environment","featuresEnabled","VueScrollTo","require","_global","global","originalFetch","PENDING_REQUESTS","MAX_REQUESTS_COUNT","INTERVAL_MS","_len","args","_key","resource","response","_args","setTimeout","_global2","values","max","finish","UUID","options","failedColor","thickness","speed","opacity","termination","autoRevert","location","inverse","VueProgressBar","Clipboard","container","duration","easing","force","cancelable","onStart","onDone","onCancel","InfiniteLoading","VueResource","VueObserveVisibility","AsyncComputed","directive","bind","element","binding","vnode","clickOutsideEvent","event","contains","expression","document","body","addEventListener","unbind","removeEventListener","caching","cachingL2","productionTip","warnHandler","msg","vm","trace","appLog","hashSplit","split","o","paramString","parts","decodeURIComponent","replace","router","store","h","App","$mount","mixins","common","DynamicModal","navBarActive","itemsSaving","showNav","linkedPerson","addAnotherDirectory","appVersion","version","$router","beforeDestroy","cappend","messageListener","methods","initializeApp","_this","origin","VUE_APP_SELECTEDSERVER","$route","query","stringify","key","endsWith","concepts","ceasnDataFields","show","selectedServer","init","readContacts","readIdentities","findLinkedPersonForIdentity","defaultPlugins","plugins","loginInfo","pers","ppk","ident","per","fetchServerAdminKeys","ssoViaP1","corsOrigins","EcPerson","getByPk","toPk","displayName","getName","ssoAdditionalPublicKeys","EcPpkFacade","fromPem","EcIdentity","addIdentity","dispatch","openWebSocket","attachEvent","loadIdentity","frameworkId","EcConceptScheme","canViewCommentsCurrentFramework","canAddCommentsCurrentFramework","EcFramework","directoryId","action","createNew","frameworksPage","collections","parent","oHead","getElementsByTagName","arrStyleSheets","tagName","toLowerCase","attributes","inherit","appendChild","cloneNode","importParentStyles","css","ss","createElement","rel","href","types","_loop","_types","schemata","undefined","indexOf","index","substring","pathname","getExpectingObject","expanded","jsonld","expand","getExpectingString","EcPk","onSidebarEvent","findLinkedPersonPersonSearchSuccess","findLinkedPersonPersonSearchFailure","ecRemoteLda","matchingPersonRecordFound","ecrld","ep","getGuid","equals","fingerprint","addGroupIdentities","searchRepositoryForGroupsSuccess","ecoa","linkedPersonShortId","shortId","eco","employee","addGroupIdentity","searchRepositoryForGroupsFailure","EcOrganization","_addGroupIdentity","_callee3","group","groupPpkSet","gPpk","grpIdent","_callee3$","_context3","getOrgKeys","addIdentityQuietly","dir","generateId","addOwner","Date","toISOString","save","$nextTick","currentRoute","selectedIds","selected","competencies","highlightCompetency","select","connection","webSocketOverride","WebSocket","onopen","onerror","error","onclose","evt","_ref3","_callee4","wut","com","_callee4$","_context4","getAssertionDate","ConceptScheme","isA","getFullType","spitEvent","t2","t3","Concept","EcConcept","t4","t5","EcCompetency","t6","t7","EcLevel","t8","t9","_x4","onmessage","cache","EcRemoteLinkedData","trimVersionFromUrl","veryShortId","EcCrypto","md5","precache","_createNewFramework","_callee5","optionalDirectory","saveFramework","_callee5$","_context5","setDefaultLanguage","newObjectEndpoint","generateShortId","owner","reader","toEncryptedValue","saveTo","_x5","_createNewCollection","_callee6","_callee6$","_context6","subType","_createNewConceptScheme","_callee7","_callee7$","_context7","_createNewProgressionModel","_callee8","_callee8$","_context8","identity","EcPpk","generateKeyAsync","p1","onIdentityChanged","saveIdentities","inIframe","fun","postMessage","_messageListener","_callee9","d","v","link","fid","guid","_callee9$","_context9","template","removeNewlines","competency","conceptScheme","concept","encryptOnSaveMap","schema","shouldTryUrl","format","_x6","entity","toPem","attachUrlProperties","_attachUrlProperties","_callee10","thing","_callee10$","_context10","_x7","copyOrLink","choice","copyCompetencies","appendCompetencies","_copyCompetencies","_callee11","copyDict","j","child","_callee11$","_context11","addReader","Task","asyncImmediate","addCompetency","afterCopy","addLevel","EcAlignment","addRelation","Relation","NARROWS","_x8","_afterCopy","_callee12","_callee12$","_context12","_appendCompetencies","_callee14","newLink","_callee14$","_context14","_callee13","_callee13$","_context13","_x9","_x10","parentStyleSheets","styleSheets","cssString","cssRules","ownerNode","countJ","cssText","innerHTML","ex","self","top","_objectSpread","isLoggedIn","loggedInPerson","currentPathIsLogin","mapState","mounted","navigationTo","isSavingProperty","isSavingThing","isAddingProperty","addingProperty","addingValues","addingRange","addingChecked","removeAddingValueAtIndex","schemataLookup","rawSchemata","schemaFallback","objectModel","competencySearchModalOpen","numPropertyComponentsVisible","searchType","includeRelations","scheme","domainType","om","setIsSavingProperty","setIsSavingThing","setIsAddingProperty","setAddingProperty","setAddingValues","newValues","forEach","newValue","trimUrl","addToAddingValues","setAddingRange","setAddingChecked","setSchemata","setSchemataLookup","setEmptySchemataLookup","setObjectModel","incrementNumPropertyComponents","thingId","decrementNumPropertyComponents","trimmed","slice","documentLoader","xmlhttp","originalUrl","ending","contextUrl","documentUrl","XMLHttpRequest","onreadystatechange","readyState","responseText","lastIndexOf","open","setRequestHeader","send","conceptCtids","conceptRegistryUrls","ctids","getCTID","registryURLs","ceasnRegistryUriTransform","item","isAdmin","adminKeys","userIds","userId","userKey","adminKey","getConceptCtids","_getConceptCtids","subCtids","ary","getConceptRegistryUrls","_getConceptRegistryUrls","subURLs","page","Thing","getDisplayStringFrom","compName","selectedFramework","selectedFrameworkObject","toJson","selectedCompetencyObject","selectedFrameworkName","selectedCompetencyName","visiblePage","selectedFrameworkCtid","matches","selectedCompetencyCtid","navigator","language","userLanguage","xhr","httpStatus","xhrx","onload","timeout","httpGet","resolveNameFromUrl","langs","conditionalDelete","depth","deleteRegistered","selectButton","_selectButton","selectedArray","relation","currentFramework","_success","selectVerbose","selectExport","selectRelations","_addLevel","optionalLevelUrlOrName","initialLevels","operation","fieldChanged","initialValue","changedValue","saveCheckedLevels","_saveCheckedLevels","checkedOptions","allOptions","competencyId","frameworkChanged","initialComp","levelChanged","_levelChanged","_each","_saveFramework","removeLevelFromFramework","_removeLevelFromFramework","levelId","removeLevel","addRelationsToFramework","_addRelationsToFramework","property","addAlignments","_x11","_x12","_x13","_addAlignments","allowSave","urlProperties","addConceptAlignments","addRelationAsCompetencyField","_ref5","initialRelations","dosedo","isNew","idx","res","rej","_x18","_x19","_x14","_x15","_x16","_x17","_addRelationAsCompetencyField","_callee16","_this2","_callee16$","_context16","_ref6","_callee15","_callee15$","_context15","_x24","_x25","_x20","_x21","_x22","_x23","removeRelationFromFramework","_removeRelationFromFramework","_callee18","_this3","_callee18$","_context18","removeRelation","_callee17","_callee17$","_context17","_x26","_x27","_x28","uri","endpoint","ctid","uuid","lop","toPrettyDateString","dateInMilliseconds","dateFormat"],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,4CAA4C,gjBAAgjB,6BAA6B,m5DAAm5D;QAC5gF;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,2BAA2B,gjBAAgjB,6BAA6B,m5DAAm5D;QAC3/E;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1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","file":"js/app.5f527677.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\",\"concepts\":\"concepts\",\"organizations\":\"organizations\",\"directory\":\"directory\",\"crosswalk\":\"crosswalk\",\"import\":\"import\",\"organization\":\"organization\",\"framework\":\"framework\",\"conceptScheme\":\"conceptScheme\",\"progressionModel\":\"progressionModel\",\"configurationEditor\":\"configurationEditor\",\"forbidden\":\"forbidden\",\"internalError\":\"internalError\",\"login\":\"login\",\"pluginContainer\":\"pluginContainer\",\"pluginManager\":\"pluginManager\",\"sidenav\":\"sidenav\",\"timeline\":\"timeline\",\"topbar\":\"topbar\",\"userGroupEditor\":\"userGroupEditor\",\"welcome\":\"welcome\"}[chunkId]||chunkId) + \".\" + {\"about\":\"ef8738c4\",\"chunk-08264f73\":\"7ccce316\",\"chunk-0e513d16\":\"240e87ed\",\"chunk-22f5d1ea\":\"b5c1d095\",\"chunk-28a7ff35\":\"701be87b\",\"chunk-2d0a4fe9\":\"f4fef23a\",\"chunk-2d0d5fe2\":\"a26ed909\",\"chunk-576b8942\":\"15e5c12b\",\"chunk-2d22bdc1\":\"7ea191cc\",\"concepts\":\"240632fa\",\"organizations\":\"9fdebcd6\",\"directory\":\"cc229a87\",\"chunk-6a6fd63e\":\"ab14187e\",\"chunk-19b164da\":\"18b36d35\",\"chunk-5ab3ec85\":\"35761004\",\"chunk-73f15c61\":\"2d6ea16a\",\"crosswalk\":\"151ac712\",\"import\":\"a6f27069\",\"organization\":\"d361a07d\",\"chunk-2d21ecda\":\"9a480e8e\",\"framework\":\"8b159392\",\"conceptScheme\":\"e96901d0\",\"progressionModel\":\"7726a809\",\"chunk-32471621\":\"5a560fd8\",\"chunk-36a8ba44\":\"ddf0b5a7\",\"chunk-3c39b703\":\"fd910002\",\"chunk-43880ac8\":\"d18c2ef9\",\"chunk-4a268576\":\"13e047c0\",\"chunk-51c654a1\":\"d93ee490\",\"chunk-61b7344a\":\"ef21d64e\",\"chunk-2d0b2ce8\":\"0b4b1205\",\"configurationEditor\":\"08c04342\",\"chunk-661fb5db\":\"e91456a3\",\"chunk-693a040c\":\"1a3c8758\",\"chunk-6e63f303\":\"3d2ebdd4\",\"chunk-719eeaef\":\"e27318bc\",\"chunk-789a5742\":\"a53f6621\",\"chunk-af56af32\":\"baa05700\",\"chunk-b37cb348\":\"764b4f62\",\"chunk-b787821e\":\"c79c046d\",\"chunk-db457718\":\"36d97c82\",\"chunk-de13755a\":\"5b86bc75\",\"forbidden\":\"e7fdd374\",\"internalError\":\"609b3b0f\",\"login\":\"d52add47\",\"pluginContainer\":\"991ae7a7\",\"pluginManager\":\"22bb5ae3\",\"sidenav\":\"890d6761\",\"timeline\":\"7ea89c40\",\"topbar\":\"87ee8126\",\"userGroupEditor\":\"da480c84\",\"welcome\":\"724fd4fc\",\"chunk-2d0cbec1\":\"7adbf805\",\"chunk-5f3758f4\":\"6dcc2bba\",\"chunk-25a2af2a\":\"253e2512\",\"chunk-51c69438\":\"57f40452\",\"chunk-dc2b4b7e\":\"e72595c1\",\"chunk-4f51c21e\":\"c2fde313\",\"chunk-74a95bb3\":\"7742bf01\",\"chunk-4a5f46a6\":\"cb0fd2a0\",\"chunk-4cf587c0\":\"5b2a1a16\",\"chunk-0e6d8a6f\":\"669a1eff\",\"chunk-6b291276\":\"14f7fda8\",\"chunk-0a05d3b6\":\"b189852a\",\"chunk-2d0ddf90\":\"7a2ff437\",\"chunk-2d0dab46\":\"23fb2f77\",\"chunk-c5459254\":\"75340121\",\"chunk-67b76a7b\":\"0125aedb\",\"chunk-4f8e6938\":\"ab15ba4c\",\"chunk-9dddac98\":\"e95ec9cb\",\"chunk-2d0daac9\":\"021370c5\",\"chunk-2d21eb37\":\"6cb9f804\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-08264f73\":1,\"chunk-0e513d16\":1,\"chunk-22f5d1ea\":1,\"chunk-28a7ff35\":1,\"chunk-576b8942\":1,\"concepts\":1,\"organizations\":1,\"directory\":1,\"chunk-6a6fd63e\":1,\"chunk-19b164da\":1,\"chunk-5ab3ec85\":1,\"chunk-73f15c61\":1,\"crosswalk\":1,\"import\":1,\"organization\":1,\"framework\":1,\"conceptScheme\":1,\"progressionModel\":1,\"chunk-32471621\":1,\"chunk-36a8ba44\":1,\"chunk-3c39b703\":1,\"chunk-43880ac8\":1,\"chunk-4a268576\":1,\"chunk-51c654a1\":1,\"chunk-61b7344a\":1,\"configurationEditor\":1,\"chunk-661fb5db\":1,\"chunk-693a040c\":1,\"chunk-6e63f303\":1,\"chunk-719eeaef\":1,\"chunk-789a5742\":1,\"chunk-af56af32\":1,\"chunk-b37cb348\":1,\"chunk-b787821e\":1,\"chunk-db457718\":1,\"chunk-de13755a\":1,\"forbidden\":1,\"internalError\":1,\"login\":1,\"pluginContainer\":1,\"pluginManager\":1,\"sidenav\":1,\"timeline\":1,\"userGroupEditor\":1,\"chunk-5f3758f4\":1,\"chunk-25a2af2a\":1,\"chunk-51c69438\":1,\"chunk-dc2b4b7e\":1,\"chunk-4f51c21e\":1,\"chunk-4cf587c0\":1,\"chunk-0e6d8a6f\":1,\"chunk-0a05d3b6\":1,\"chunk-c5459254\":1,\"chunk-67b76a7b\":1,\"chunk-4f8e6938\":1,\"chunk-9dddac98\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\",\"concepts\":\"concepts\",\"organizations\":\"organizations\",\"directory\":\"directory\",\"crosswalk\":\"crosswalk\",\"import\":\"import\",\"organization\":\"organization\",\"framework\":\"framework\",\"conceptScheme\":\"conceptScheme\",\"progressionModel\":\"progressionModel\",\"configurationEditor\":\"configurationEditor\",\"forbidden\":\"forbidden\",\"internalError\":\"internalError\",\"login\":\"login\",\"pluginContainer\":\"pluginContainer\",\"pluginManager\":\"pluginManager\",\"sidenav\":\"sidenav\",\"timeline\":\"timeline\",\"topbar\":\"topbar\",\"userGroupEditor\":\"userGroupEditor\",\"welcome\":\"welcome\"}[chunkId]||chunkId) + \".\" + {\"about\":\"31d6cfe0\",\"chunk-08264f73\":\"60471a70\",\"chunk-0e513d16\":\"6fe35a3d\",\"chunk-22f5d1ea\":\"60471a70\",\"chunk-28a7ff35\":\"60471a70\",\"chunk-2d0a4fe9\":\"31d6cfe0\",\"chunk-2d0d5fe2\":\"31d6cfe0\",\"chunk-576b8942\":\"cebd8586\",\"chunk-2d22bdc1\":\"31d6cfe0\",\"concepts\":\"223c9419\",\"organizations\":\"1d9c1cec\",\"directory\":\"70098fbc\",\"chunk-6a6fd63e\":\"d8e69eab\",\"chunk-19b164da\":\"2c043d12\",\"chunk-5ab3ec85\":\"d652b43a\",\"chunk-73f15c61\":\"bb359785\",\"crosswalk\":\"b12a891a\",\"import\":\"91080966\",\"organization\":\"2f85a467\",\"chunk-2d21ecda\":\"31d6cfe0\",\"framework\":\"68516d6d\",\"conceptScheme\":\"75a8af1c\",\"progressionModel\":\"75a8af1c\",\"chunk-32471621\":\"60471a70\",\"chunk-36a8ba44\":\"60471a70\",\"chunk-3c39b703\":\"60471a70\",\"chunk-43880ac8\":\"60471a70\",\"chunk-4a268576\":\"60471a70\",\"chunk-51c654a1\":\"daa4e784\",\"chunk-61b7344a\":\"d0a47e88\",\"chunk-2d0b2ce8\":\"31d6cfe0\",\"configurationEditor\":\"aa42073b\",\"chunk-661fb5db\":\"60471a70\",\"chunk-693a040c\":\"60471a70\",\"chunk-6e63f303\":\"60471a70\",\"chunk-719eeaef\":\"369d5d3a\",\"chunk-789a5742\":\"60471a70\",\"chunk-af56af32\":\"60471a70\",\"chunk-b37cb348\":\"73ccae3d\",\"chunk-b787821e\":\"60471a70\",\"chunk-db457718\":\"60471a70\",\"chunk-de13755a\":\"73ccae3d\",\"forbidden\":\"1b0a0109\",\"internalError\":\"7f0e233f\",\"login\":\"be292f08\",\"pluginContainer\":\"ae42be31\",\"pluginManager\":\"7dbcc073\",\"sidenav\":\"e0b4a456\",\"timeline\":\"4070750e\",\"topbar\":\"31d6cfe0\",\"userGroupEditor\":\"83fefc67\",\"welcome\":\"31d6cfe0\",\"chunk-2d0cbec1\":\"31d6cfe0\",\"chunk-5f3758f4\":\"a2bf2d06\",\"chunk-25a2af2a\":\"60471a70\",\"chunk-51c69438\":\"09db533f\",\"chunk-dc2b4b7e\":\"60471a70\",\"chunk-4f51c21e\":\"a478a2a2\",\"chunk-74a95bb3\":\"31d6cfe0\",\"chunk-4a5f46a6\":\"31d6cfe0\",\"chunk-4cf587c0\":\"c8484769\",\"chunk-0e6d8a6f\":\"cc85466d\",\"chunk-6b291276\":\"31d6cfe0\",\"chunk-0a05d3b6\":\"4b09ece7\",\"chunk-2d0ddf90\":\"31d6cfe0\",\"chunk-2d0dab46\":\"31d6cfe0\",\"chunk-c5459254\":\"6bbc8dd3\",\"chunk-67b76a7b\":\"67586f64\",\"chunk-4f8e6938\":\"c8484769\",\"chunk-9dddac98\":\"c8484769\",\"chunk-2d0daac9\":\"31d6cfe0\",\"chunk-2d21eb37\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c(_vm.dynamicModal,{tag:\"Component\",attrs:{\"title\":_vm.title,\"view\":\"modal\",\"content\":_vm.dynamicModalContent},on:{\"create-directory\":function($event){return _vm.$emit('create-directory', $event)},\"create-another-directory\":function($event){return _vm.$emit('create-another-directory', $event)},\"close\":function($event){return _vm.$emit('app/closeModal')},\"cancel\":function($event){return _vm.$emit('app/closeModal')}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DynamicModal.vue?vue&type=template&id=704681ec\"\nimport script from \"./DynamicModal.vue?vue&type=script&lang=js\"\nexport * from \"./DynamicModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./DynamicModal.vue?vue&type=style&index=0&id=704681ec&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.editorClass,attrs:{\"id\":\"app\"}},[(_vm.bannerMessage)?_c('div',{staticClass:\"banner\",style:(_vm.bannerStyle)},[_c('span',[_vm._v(_vm._s(_vm.bannerMessage))])]):_vm._e(),_c('DynamicModal',{on:{\"create-directory\":_vm.saveDirectory,\"create-another-directory\":_vm.saveDirectoryAndAddAnother}}),_c('router-view',{class:[{ 'clear-side-bar': _vm.showSideNav}, { 'clear-narrow-side-bar': !_vm.showSideNav}, {'clear-right-aside': _vm.showRightAside}],on:{\"create-new-framework\":_vm.createNewFramework,\"create-new-concept-scheme\":_vm.createNewConceptScheme,\"create-new-progression-model\":_vm.createNewProgressionModel,\"create-new-collection\":_vm.createNewCollection}}),_c('router-view',{attrs:{\"showSideNav\":_vm.showSideNav,\"name\":\"sidebar\"},on:{\"create-new-framework\":_vm.createNewFramework,\"create-new-concept-scheme\":_vm.createNewConceptScheme,\"create-new-progression-model\":_vm.createNewProgressionModel,\"create-new-collection\":_vm.createNewCollection}}),_c('vue-progress-bar'),(_vm.bannerMessage)?_c('div',{staticClass:\"banner banner-bot\",style:(_vm.bannerStyle)},[_c('span',[_vm._v(_vm._s(_vm.bannerMessage))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=414a336e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=414a336e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* (ignored) */","import Vue from 'vue';\nimport Router from 'vue-router';\n\n\nVue.use(Router);\nexport default new Router({\n base: process.env.BASE_URL,\n scrollBehavior(to, from, savedPosition) {\n if (to.hash) {\n return {\n selector: to.hash,\n offset: {x: 0, y: -100}\n };\n }\n },\n routes: [\n {\n path: '/',\n name: 'welcome',\n components: {\n default: () => import(/* webpackChunkName: \"welcome\" */ './views/Welcome.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n },\n alias: '/cass-editor/'\n },\n {\n path: '/frameworks',\n name: 'frameworks',\n components: {\n default: () => import(/* webpackChunkName: \"frameworks\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/collections',\n name: 'collections',\n components: {\n default: () => import(/* webpackChunkName: \"frameworks\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/concepts',\n name: 'concepts',\n components: {\n default: () => import(/* webpackChunkName: \"concepts\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/progressionLevels',\n name: 'progressionLevels',\n components: {\n default: () => import(/* webpackChunkName: \"progressionLevels\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/login',\n name: 'login',\n component: () => import(/* webpackChunkName: \"login\" */ './views/login/Login.vue')\n },\n {\n path: '/legacyLogin',\n name: 'legacyLogin',\n component: () => import(/* webpackChunkName: \"login\" */ './views/login/LegacyLogin.vue')\n },\n {\n path: '/createAccount',\n name: 'createAccount',\n component: () => import(/* webpackChunkName: \"login\" */ './views/login/CreateAccount.vue')\n },\n {\n path: '/configuration',\n name: 'configuration',\n components: {\n default: () => import(/* webpackChunkName: \"configurationEditor\" */ './views/ConfigurationEditor'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/users',\n name: 'users',\n components: {\n default: () => import(/* webpackChunkName: \"userGroupEditor\" */ './views/usersGroups/UserGroupEditor'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n // {\n // path: '/users-and-groups',\n // name: 'users-and-groups',\n // components: {\n // default: () => import('./views/usersGroups/UsersAndGroups.vue'),\n // sidebar: () => import('./components/SideNav.vue'),\n // topbar: () => import('./components/Topbar.vue')\n // }\n // },\n {\n path: '/pluginManager',\n name: 'pluginManager',\n components: {\n default: () => import(/* webpackChunkName: \"pluginManager\" */ './views/plugins/PluginManager'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/crosswalk',\n name: 'crosswalk',\n components: {\n default: () => import(/* webpackChunkName: \"crosswalk\" */ './views/framework/Crosswalk'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/timeline',\n name: 'timeline',\n components: {\n default: () => import(/* webpackChunkName: \"timeline\" */ './views/framework/Timeline'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/about',\n name: 'about',\n components: {\n default: () => import(/* webpackChunkName: \"about\" */ './views/About.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/framework',\n name: 'framework',\n components: {\n default: () => import(/* webpackChunkName: \"framework\" */ './views/framework/Framework.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/import',\n name: 'import',\n components: {\n default: () => import(/* webpackChunkName: \"import\" */ './views/framework/Import.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/organizations',\n name: 'organizations',\n components: {\n default: () => import(/* webpackChunkName: \"organizations\" */ './views/organization/Organizations.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/organization',\n name: 'organization',\n components: {\n default: () => import(/* webpackChunkName: \"organization\" */ './views/organization/Organization.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/pluginContainer',\n name: 'pluginContainer',\n components: {\n default: () => import(/* webpackChunkName: \"pluginContainer\" */ './views/plugins/PluginContainer.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/conceptScheme',\n name: 'conceptScheme',\n components: {\n default: () => import(/* webpackChunkName: \"conceptScheme\" */ './views/conceptScheme/ConceptScheme.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/progressionModel',\n name: 'progressionModel',\n components: {\n default: () => import(/* webpackChunkName: \"progressionModel\" */ './views/progressionModel/ProgressionModel.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/403',\n name: 'Forbidden',\n component: () => import(/* webpackChunkName: \"forbidden\" */ './views/Forbidden.vue')\n },\n {\n path: '/500',\n name: 'InternalError',\n component: () => import(/* webpackChunkName: \"internalError\" */ './views/InternalError.vue')\n },\n {\n path: '/directory',\n name: 'directory',\n components: {\n default: () => import(/* webpackChunkName: \"directory\" */ './views/directory/Directory.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n }\n ]\n});\n","import Vue from 'vue';\nimport Vuex from 'vuex';\n\nVue.use(Vuex);\n\nconst state = {\n framework: null,\n organization: null,\n selectedCompetency: null,\n queryParams: {},\n defaultLanguage: null,\n webSocketBackoff: 100,\n selectCompetencyRelation: null,\n selectingCompetencies: false,\n private: false,\n newCompetency: null,\n newFramework: null,\n t3Profile: false,\n changedObject: null,\n configuration: null,\n commonPathIframe: '',\n iframeCompetencyPathInterframework: '',\n iframeConceptPath: '',\n addCommentAboutId: '',\n addCommentType: '',\n commentToEdit: {},\n commentToReply: {},\n frameworkCommentDataLoaded: false,\n frameworkCommentList: [],\n frameworkCommentPersonMap: {},\n commentsToDelete: [],\n commentScrollTo: {},\n editsToUndo: [],\n lastEditToUndo: null,\n recomputeHierarchy: false,\n recomputePrecedence: false,\n recomputePrecedenceAfterReorder: false,\n selectedCompetenciesAsProperties: null,\n refreshLevels: false,\n refreshAlignments: false,\n refreshProperties: false,\n conceptMode: false,\n collectionMode: false,\n progressionMode: false,\n cutId: null,\n copyId: null,\n paste: false,\n cutOrCopyContainerId: null,\n nodeInFocus: null,\n relations: {},\n setPropertyLevel: null,\n addAnother: false,\n itemToDelete: {},\n itemToRemove: {},\n itemToExport: {},\n manageAssertions: false,\n assertions: [],\n badgePk: null,\n me: null,\n subject: null,\n people: [],\n firstSearchProcessing: true,\n searchingAssertions: false\n};\nconst mutations = {\n framework(state, f) {\n state.framework = f;\n },\n organization(state, f) {\n state.organization = f;\n },\n selectedCompetency(state, comp) {\n state.selectedCompetency = comp;\n },\n queryParams(state, params) {\n state.queryParams = params;\n },\n defaultLanguage(state, lang) {\n state.defaultLanguage = lang;\n },\n webSocketBackoffIncrease(state) {\n state.webSocketBackoff *= 2;\n },\n private(state, bool) {\n state.private = bool;\n },\n selectCompetencyRelation(state, r) {\n state.selectCompetencyRelation = r;\n },\n selectingCompetencies(state, bool) {\n state.selectingCompetencies = bool;\n },\n newCompetency(state, id) {\n state.newCompetency = id;\n },\n newFramework(state, id) {\n state.newFramework = id;\n },\n t3Profile(state, bool) {\n state.t3Profile = bool;\n },\n changedObject(state, id) {\n state.changedObject = id;\n },\n configuration(state, config) {\n state.configuration = config;\n },\n commonPathIframe(state, val) {\n state.commonPathIframe = val;\n },\n iframeCompetencyPathInterframework(state, val) {\n state.iframeCompetencyPathInterframework = val;\n },\n iframeConceptPath(state, val) {\n state.iframeConceptPath = val;\n },\n setAddCommentAboutId(state, val) {\n state.addCommentAboutId = val;\n },\n setAddCommentType(state, val) {\n state.addCommentType = val;\n },\n setCommentToEdit(state, val) {\n state.commentToEdit = val;\n },\n setCommentToReply(state, val) {\n state.commentToReply = val;\n },\n setCommentsToDelete(state, val) {\n state.commentsToDelete = val;\n },\n clearFrameworkCommentData(state) {\n state.frameworkCommentDataLoaded = false;\n state.frameworkCommentList = [];\n state.frameworkCommentPersonMap = {};\n },\n setFrameworkCommentDataLoaded(state, val) {\n state.frameworkCommentDataLoaded = val;\n },\n setFrameworkCommentList(state, val) {\n state.frameworkCommentList = val;\n },\n setFrameworkCommentPersonMap(state, val) {\n state.frameworkCommentPersonMap = val;\n },\n setCommentScrollTo(state, val) {\n state.commentScrollTo = val;\n },\n addEditsToUndo(state, edits) {\n state.editsToUndo.push(edits);\n },\n setLastEditToUndo(state, edit) {\n state.lastEditToUndo = edit;\n },\n recomputeHierarchy(state, boolean) {\n state.recomputeHierarchy = boolean;\n },\n recomputePrecedence(state, boolean) {\n state.recomputePrecedence = boolean;\n },\n recomputePrecedenceAfterReorder(state, boolean) {\n state.recomputePrecedenceAfterReorder = boolean;\n },\n selectedCompetenciesAsProperties(state, comps) {\n state.selectedCompetenciesAsProperties = comps;\n },\n refreshLevels(state, boolean) {\n state.refreshLevels = boolean;\n },\n refreshAlignments(state, boolean) {\n state.refreshAlignments = boolean;\n },\n refreshProperties(state, boolean) {\n state.refreshProperties = boolean;\n },\n conceptMode(state, boolean) {\n if (boolean) {\n state.conceptMode = true;\n state.progressionMode = false;\n } else {\n state.conceptMode = false;\n }\n },\n collectionMode(state, boolean) {\n state.collectionMode = boolean;\n },\n progressionMode(state, boolean) {\n if (boolean) {\n state.progressionMode = true;\n state.conceptMode = false;\n } else {\n state.progressionMode = false;\n }\n },\n cutId(state, id) {\n state.cutId = id;\n },\n copyId(state, id) {\n state.copyId = id;\n },\n paste(state, id) {\n state.paste = id;\n },\n cutOrCopyContainerId(state, id) {\n state.cutOrCopyContainerId = id;\n },\n nodeInFocus(state, id) {\n state.nodeInFocus = id;\n },\n relations(state, obj) {\n state.relations = obj;\n },\n setPropertyLevel(state, level) {\n state.setPropertyLevel = level;\n },\n addAnother(state, bool) {\n state.addAnother = bool;\n },\n setItemToDelete(state, val) {\n state.itemToDelete = val;\n },\n setItemToRemove(state, val) {\n state.itemToRemove = val;\n },\n setItemToExport(state, val) {\n state.itemToExport = val;\n },\n setManageAssertions(state, val) {\n state.manageAssertions = val;\n },\n setAssertions(state, val) {\n state.assertions = val;\n },\n removeAssertion(state, val) {\n EcArray.setRemove(state.assertions, val);\n },\n removeAssertionAtIndex(state, val) {\n state.assertions.splice(val, 1);\n },\n addAssertion(state, val) {\n EcArray.setAdd(state.assertions, val);\n },\n setBadgePk(state, val) {\n state.badgePk = val;\n },\n setMe(state, val) {\n state.me = val;\n },\n setSubject(state, val) {\n state.subject = val;\n },\n setPeople(state, val) {\n state.people = val;\n },\n setFirstSearchProcessing(state, val) {\n state.firstSearchProcessing = val;\n },\n setSearchingAssertions(state, val) {\n state.searchingAssertions = val;\n }\n};\nconst actions = {\n getDirectoryChildren: function(instance, directory) {\n let children = [];\n if (directory.frameworks) {\n children.push(...directory.frameworks);\n }\n if (directory.resources) {\n children.push(...directory.resources);\n }\n if (directory.directories) {\n children.push(...directory.directories);\n }\n return children;\n },\n lastEditToUndo: function(context) {\n context.commit('setLastEditToUndo', context.state.editsToUndo.pop());\n return context.state.lastEditToUndo;\n },\n getThing: (instance, payload) => {\n return new Promise((resolve, reject) => {\n var url = EcRemote.urlAppend(payload.server, payload.service);\n url = EcRemote.upgradeHttpToHttps(url);\n fetch(url, {\n headers: payload.headers\n }).then((resp) => {\n if (payload.success) {\n payload.success(resp.data);\n }\n resolve(resp.data);\n }).catch((err) => {\n if (payload.failure) {\n payload.failure(err);\n }\n reject(err);\n });\n });\n },\n searchForAssertions: (instance) => {\n return new Promise((resolve, reject) => {\n instance.state.searchingAssertions = true;\n var assertions = [];\n let doSearch = async function(start, count) {\n return new Promise((resolve, reject) => {\n EcAssertion.search(window.repo, \"\\\"\" + instance.state.me + \"\\\"\", async(results) => {\n assertions.push(...results);\n start += count;\n if (results.length > 0) {\n await doSearch(start, count);\n }\n resolve();\n }, reject, {size: count, start: start});\n });\n };\n\n doSearch(0, 5000).then(() => {\n var eah = new EcAsyncHelper();\n eah.each(assertions, (assertion, callback) => {\n if (assertion.assertionDateDecrypted != null) {\n callback();\n } else {\n assertion.getAssertionDateAsync((date) => {\n assertion.assertionDateDecrypted = date;\n callback();\n }, callback);\n }\n },\n (assertions) => {\n instance.state.assertions = assertions;\n instance.state.searchingAssertions = false;\n resolve();\n });\n }).catch(appError);\n });\n },\n computeBecause: (instance, evidences) => {\n return new Promise((resolve, reject) => {\n var explanations = [];\n new EcAsyncHelper().each(evidences, (e, callback) => {\n var evidenceString = \"\";\n var eoriginal = e;\n if (e.startsWith != null && e.startsWith(\"{\")) {\n e = JSON.parse(e);\n }\n if (EcObject.isObject(e)) {\n if (e.verb != null) {\n if (e.verb.display != null) {\n if (e.verb.display.en != null) {\n evidenceString += e.verb.display.en + \" \";\n }\n }\n }\n if (e.object != null) {\n if (e.object.definition != null) {\n if (e.object.definition.type === \"http://adlnet.gov/expapi/activities/assessment\") {\n evidenceString += \"\\\"\" + e.object.definition.name.en + \"\\\" quiz with a \";\n if (e.result != null) {\n if (e.result.success != null) {\n evidenceString += e.result.success ? \" passing \" : \" not passing \";\n evidenceString += Math.round(e.result.score.scaled * 100.0) + \"%\";\n }\n }\n }\n }\n }\n if (e.object != null) {\n if (e.object.definition != null) {\n if (e.object.definition.interactionType != null) {\n evidenceString += \"\\\"\" + e.object.definition.name.en + \"\\\" \";\n if (e.result != null) {\n if (e.result.success != null) {\n evidenceString += e.result.success ? \" correctly\" : \" incorrectly\";\n }\n }\n }\n }\n }\n if (evidenceString !== \"\") {\n explanations.push({text: evidenceString, original: eoriginal});\n }\n callback();\n } else if (e.startsWith != null && e.startsWith(\"http\")) {\n let failureFunc = function() {\n explanations.push({\n text: \"did this\",\n url: e,\n original: eoriginal\n });\n };\n EcRepository.get(e, (success) => {\n try {\n if (success.isAny(new ChooseAction().getTypes())) {\n EcRepository.get(success.object, (creativeWork) => {\n explanations.push({\n text: \"viewed \" + creativeWork.name,\n url: creativeWork.url,\n original: eoriginal\n });\n callback();\n }, callback);\n } else {\n failureFunc();\n callback();\n }\n } catch (e) {\n failureFunc();\n callback();\n }\n }, (failure) => {\n failureFunc();\n callback();\n });\n } else {\n explanations.push({text: \"\\\"\" + e + \"\\\"\", original: eoriginal});\n callback();\n }\n }, (evidences) => {\n resolve(explanations);\n });\n });\n }\n};\nconst getters = {\n framework: function(state) {\n return state.framework;\n },\n organization: function(state) {\n return state.organization;\n },\n selectedCompetency: function(state) {\n return state.selectedCompetency;\n },\n queryParams: function(state) {\n return state.queryParams;\n },\n defaultLanguage: function(state) {\n return state.defaultLanguage;\n },\n webSocketBackoff: function(state) {\n return state.webSocketBackoff;\n },\n selectCompetencyRelation: function(state) {\n return state.selectCompetencyRelation;\n },\n selectingCompetencies: function(state) {\n return state.selectingCompetencies;\n },\n private: function(state) {\n return state.private;\n },\n newCompetency: function(state) {\n return state.newCompetency;\n },\n newFramework: function(state) {\n return state.newFramework;\n },\n t3Profile: function(state) {\n return state.t3Profile;\n },\n changedObject: function(state) {\n return state.changedObject;\n },\n configuration: function(state) {\n return state.configuration;\n },\n addCommentAboutId: function(state) {\n return state.addCommentAboutId;\n },\n addCommentType: function(state) {\n return state.addCommentType;\n },\n commentToEdit: function(state) {\n return state.commentToEdit;\n },\n commentToReply: function(state) {\n return state.commentToReply;\n },\n commentsToDelete: function(state) {\n return state.commentsToDelete;\n },\n frameworkCommentDataLoaded: function(state) {\n return state.frameworkCommentDataLoaded;\n },\n frameworkCommentList: function(state) {\n return state.frameworkCommentList;\n },\n frameworkCommentPersonMap: function(state) {\n return state.frameworkCommentPersonMap;\n },\n commentScrollTo: function(state) {\n return state.commentScrollTo;\n },\n recomputeHierarchy: function(state) {\n return state.recomputeHierarchy;\n },\n recomputePrecedence: function(state) {\n return state.recomputePrecedence;\n },\n recomputePrecedenceAfterReorder: function(state) {\n return state.recomputePrecedenceAfterReorder;\n },\n selectedCompetenciesAsProperties: function(state) {\n return state.selectedCompetenciesAsProperties;\n },\n refreshLevels: function(state) {\n return state.refreshLevels;\n },\n refreshAlignments: function(state) {\n return state.refreshAlignments;\n },\n refreshProperties: function(state) {\n return state.refreshProperties;\n },\n conceptMode: function(state) {\n return state.conceptMode;\n },\n collectionMode: function(state) {\n return state.collectionMode;\n },\n progressionMode: function(state) {\n return state.progressionMode;\n },\n cutId: function(state) {\n return state.cutId;\n },\n copyId: function(state) {\n return state.copyId;\n },\n paste: function(state) {\n return state.paste;\n },\n cutOrCopyContainerId: function(state) {\n return state.cutOrCopyContainerId;\n },\n nodeInFocus: function(state) {\n return state.nodeInFocus;\n },\n relations: function(state) {\n return state.relations;\n },\n setPropertyLevel: function(state) {\n return state.setPropertyLevel;\n },\n addAnother: function(state) {\n return state.addAnother;\n },\n itemToDelete: function(state) {\n return state.itemToDelete;\n },\n itemToRemove: function(state) {\n return state.itemToRemove;\n },\n itemToExport: function(state) {\n return state.itemToExport;\n },\n manageAssertions: function(state) {\n return state.manageAssertions;\n },\n assertions: function(state) {\n return state.assertions.sort((a, b) => {\n return b.assertionDateDecrypted - a.assertionDateDecrypted;\n });\n },\n badgePk: function(state) {\n return state.badgePk;\n },\n getMe: function(state) {\n return state.me;\n },\n getSubject: function(state) {\n return state.subject;\n },\n people: function(state) {\n return state.people;\n },\n firstSearchProcessing: function(state) {\n return state.firstSearchProcessing;\n },\n searchingAssertions: function(state) {\n return state.searchingAssertions;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","// This store is used to control app state for behavior\n// such as displaying certain modals\n// and transitions\n\nconst state = {\n sideNavEnabled: true,\n showSideNav: true,\n showRightAside: false,\n rightAsideContent: '',\n rightAsideObject: null,\n canViewComments: false,\n canAddComments: false,\n pluginLastUpdate: null,\n pluginToLaunch: null,\n pluginToLaunchLastUpdate: 0,\n framework: {\n showToolBar: true,\n commentsEnabled: true,\n versionsEnabled: true,\n draggingEnabled: false,\n isDragging: false,\n draggable: {}\n },\n configuration: {\n contentSection: ''\n },\n frameworks: {\n searchTerm: '',\n quickFilters: [],\n applySearchTo: [],\n sortResults: [],\n refreshSearch: false,\n searchFrameworksInCompetencySearch: false\n },\n modal: {\n framework: '',\n showModal: false,\n dynamicModalContent: {},\n objForShareModal: null\n },\n directories: {\n directoryList: [],\n selectedDirectory: null,\n searchingInDirectory: true,\n editDirectory: false\n },\n import: {\n files: [],\n transition: 'upload', // upload, process, detail, preview, light\n status: '', // success, failure, edit\n type: 'file', // pdf, server, text\n fileType: '',\n firstImport: Boolean,\n errors: [], // erorrs from the code or from the api\n feedback: '', // additional information\n duplicates: [],\n skip: [],\n framework: null,\n serverUrl: '',\n url: '',\n frameworkName: '',\n frameworkDescription: '',\n importCsv: {\n nameColumn: {},\n descriptionColumn: {},\n scopeColumn: {},\n idColumn: {},\n sourceColumn: {},\n relationColumn: {},\n targetColumn: {}\n },\n importText: '',\n csvColumns: [],\n csvRelationColumns: [],\n csvRelationFile: null,\n importModalParams: null\n },\n allowCancel: false,\n banner: {\n message: '',\n color: '',\n background: ''\n },\n motd: {\n message: '',\n title: ''\n },\n curatedPlugins: [\n {\n \"id\": \"vlrcTestPlugin3\",\n \"url\": \"https://raw.githubusercontent.com/cassproject/cass-vlrc/master/\"\n }\n ]\n};\nconst mutations = {\n showSideNav: function() {\n state.showSideNav = true;\n state.showRightAside = false;\n },\n closeSideNav: function() {\n state.showSideNav = false;\n },\n showRightAside: function(state, payload) {\n state.showRightAside = true;\n state.rightAsideContent = payload;\n // state.showSideNav = false;\n },\n closeRightAside: function(state) {\n state.showRightAside = false;\n state.rightAsideContent = '';\n state.rightAsideObject = null;\n },\n rightAsideObject: async function(state, payload) {\n if (payload.encryptedType) {\n let type = \"Ec\" + payload.encryptedType;\n let obj = new window[type]();\n obj.copyFrom(await EcEncryptedValue.fromEncryptedValue(payload));\n state.rightAsideObject = obj;\n } else {\n state.rightAsideObject = payload;\n }\n },\n showModal: function(state, payload) {\n state.modal.showModal = true;\n state.modal.dynamicModalContent = payload;\n },\n closeModal: function(state) {\n state.modal.showModal = false;\n state.modal.dynamicModalContent = {};\n },\n objForShareModal: function(state, payload) {\n state.modal.objForShareModal = payload;\n },\n draggingEnabled: function(state, value) {\n state.framework.draggingEnabled = value;\n },\n isDragging: function(state, value) {\n state.framework.isDragging = value;\n },\n draggable: function(state, value) {\n state.framework.draggable = value;\n },\n importFiles: function(state, value) {\n state.import.files = value;\n },\n setCanViewComments: function(state, value) {\n state.canViewComments = value;\n },\n setCanAddComments: function(state, value) {\n state.canAddComments = value;\n },\n clearImportFiles: function(state) {\n state.import.files = [];\n },\n pluginLastUpdate: function(state, value) {\n state.pluginLastUpdate = value;\n },\n pluginToLaunch: function(state, value) {\n state.pluginToLaunch = value;\n },\n pluginToLaunchLastUpdate: function(state, value) {\n state.pluginToLaunchLastUpdate = value;\n },\n resetImport: function(state) {\n state.import = {\n files: [],\n transition: 'upload', // upload, process, detail, preview, light\n status: '', // success, failure, edit\n type: 'file', // pdf, server, text\n fileType: '',\n firstImport: Boolean,\n errors: [], // erorrs from the code or from the api\n feedback: '', // additional information\n duplicates: [],\n skip: [],\n framework: null,\n serverUrl: '',\n url: '',\n frameworkName: '',\n frameworkDescription: '',\n importCsv: {\n nameColumn: {},\n descriptionCcolumn: {},\n scopeColumn: {},\n idColumn: {},\n sourceColumn: {},\n relationColumn: {},\n targetColumn: {}\n },\n importText: '',\n csvColumns: [],\n csvRelationColumns: [],\n csvRelationFile: null,\n importModalParams: null\n };\n },\n importTransition: function(state, value) {\n state.import.transition = value;\n },\n importFileType: function(state, value) {\n state.import.fileType = value;\n },\n importType: function(state, value) {\n state.import.type = value;\n },\n firstImport: function(state, val) {\n state.import.firstImport = val;\n },\n addImportError: function(state, val) {\n state.import.errors.push(val);\n },\n clearImportErrors: function(state) {\n state.import.errors = [];\n },\n importStatus: function(state, val) {\n state.import.status = val;\n },\n importAllowCancel: function(state, val) {\n state.allowCancel = val;\n },\n importFeedback: function(state, val) {\n state.import.feedback = val;\n },\n importDuplicates: function(state, val) {\n state.import.duplicates = val;\n },\n importSkip: function(state, val) {\n state.import.skip = val;\n },\n importFramework: function(state, val) {\n state.import.framework = val;\n },\n importFrameworkName: function(state, val) {\n state.import.frameworkName = val;\n },\n importFrameworkNameColumn: function(state, val) {\n state.import.frameworkNameColumn = val;\n },\n importFrameworkScopeColumn: function(state, val) {\n state.import.frameworkScopeColumn = val;\n },\n importFrameworkIdColumn: function(state, val) {\n state.import.frameworkIdColumn = val;\n },\n importFrameworkDescription: function(state, val) {\n state.import.frameworkDescription = val;\n },\n importText: function(state, val) {\n state.import.importText = val;\n },\n importServerUrl: function(state, val) {\n state.import.serverUrl = val;\n },\n importUrl: function(state, val) {\n state.import.url = val;\n },\n importNameColumn: function(state, val) {\n state.import.importCsv.nameColumn = val;\n },\n importDescriptionColumn: function(state, val) {\n state.import.importCsv.descriptionColumn = val;\n },\n importScopeColumn: function(state, val) {\n state.import.importCsv.scopeColumn = val;\n },\n importSourceColumn: function(state, val) {\n state.import.importCsv.sourceColumn = val;\n },\n importTargetColumn: function(state, val) {\n state.import.importCsv.targetColumn = val;\n },\n importRelationColumn: function(state, val) {\n state.import.importCsv.relationColumn = val;\n },\n importIdColumn: function(state, val) {\n state.import.importCsv.idColumn = val;\n },\n csvColumns: function(state, val) {\n state.import.csvColumns = val;\n },\n csvRelationColumns: function(state, val) {\n state.import.csvRelationColumns = val;\n },\n csvRelationFile: function(state, val) {\n state.import.csvRelationFile = val;\n },\n importModalParams: function(state, val) {\n state.import.importModalParams = val;\n },\n searchTerm: function(state, value) {\n state.frameworks.searchTerm = value;\n },\n applySearchTo: function(state, value) {\n state.frameworks.applySearchTo = value;\n },\n refreshSearch: function(state, value) {\n state.frameworks.refreshSearch = value;\n },\n sortResults: function(state, value) {\n state.frameworks.sortResults = value;\n },\n quickFilters: function(state, value) {\n state.frameworks.quickFilters = value;\n },\n singleQuickFilter: function(state, value) {\n let i = state.frameworks.quickFilters.findIndex((filter) => filter.id === value.id);\n if (i >= 0) {\n state.frameworks.quickFilters[i].checked = value.checked;\n } else {\n state.frameworks.quickFilters.push(value);\n }\n },\n clearSearchFilters: function(state) {\n let quickFilters = state.frameworks.quickFilters;\n let sortResults = state.frameworks.sortResults;\n let applySearchTo = state.frameworks.applySearchTo;\n\n for (let i = 0; i < quickFilters.length; i++) {\n quickFilters[i].checked = false;\n }\n for (let i = 0; i < sortResults.length; i++) {\n sortResults[i].checked = false;\n }\n for (let i = 0; i < applySearchTo.length; i++) {\n applySearchTo[i].checked = false;\n }\n state.frameworks.quickFilters = quickFilters;\n state.frameworks.sortResults = sortResults;\n state.frameworks.applySearchTo = applySearchTo;\n },\n selectDirectory: function(state, value) {\n state.directories.selectedDirectory = value;\n },\n directoryList: function(state, list) {\n state.directories.directoryList = list;\n },\n searchingInDirectory: function(state, bool) {\n state.directories.searchingInDirectory = bool;\n },\n editDirectory: function(state, bool) {\n state.directories.editDirectory = bool;\n },\n searchFrameworksInCompetencySearch: function(state, bool) {\n state.frameworks.searchFrameworksInCompetencySearch = bool;\n },\n setBanner: function(state, payload) {\n if (payload.message) {\n state.banner.message = payload.message;\n }\n if (payload.color) {\n state.banner.color = payload.color;\n }\n if (payload.background) {\n state.banner.background = payload.background;\n }\n },\n setMotd: function(state, payload) {\n if (payload.message) {\n state.motd.message = payload.message;\n }\n if (payload.title) {\n state.motd.title = payload.title;\n }\n },\n setCuratedPlugins: function(state, payload) {\n state.curatedPlugins = payload;\n }\n};\nconst actions = {\n clearImport: function({commit}) {\n commit('importFramework', null);\n commit('clearImportFiles');\n commit('clearImportErrors');\n commit('importTransition', 'upload');\n commit('importStatus', '');\n commit('importAllowCancel', false);\n commit('importFeedback', '');\n commit('importFileType', '');\n commit('importDuplicates', []);\n commit('importSkip', []);\n },\n refreshDirectories: function({commit}) {\n let directories = [];\n let directoryIds = [];\n let paramObj = {size: 10000};\n EcDirectory.search(window.repo, \"\", function(dirs) {\n for (let i = 0; i < dirs.length; i++) {\n if (dirs[i].canEditAny(EcIdentityManager.default.getMyPks()) && !EcArray.has(directoryIds, dirs[i].id)) {\n directories.push(dirs[i]);\n directoryIds.push(dirs[i].id);\n }\n }\n commit('directoryList', directories);\n }, appError, paramObj);\n }\n};\nconst getters = {\n canViewComments: state => {\n return state.canViewComments;\n },\n canAddComments: state => {\n return state.canAddComments;\n },\n sideNavEnabled: state => {\n return state.sideNavEnabled;\n },\n showSideNav: state => {\n return state.showSideNav;\n },\n showRightAside: state => {\n return state.showRightAside;\n },\n rightAsideContent: state => {\n return state.rightAsideContent;\n },\n rightAsideObject: state => {\n return state.rightAsideObject;\n },\n framework: state => {\n return state.framework;\n },\n showModal: state => {\n return state.modal.showModal;\n },\n dynamicModalContent: state => {\n return state.modal.dynamicModalContent;\n },\n objForShareModal: state => {\n return state.modal.objForShareModal;\n },\n draggingEnabled: state => {\n return state.modal.draggingEnabled;\n },\n isDragging: state => {\n return state.modal.isDragging;\n },\n draggable: state => {\n return state.framework.draggable;\n },\n importFiles: state => {\n return state.import.files;\n },\n importTransition: state => {\n return state.import.transition;\n },\n importFileType: state => {\n return state.import.fileType;\n },\n importType: state => {\n return state.import.type;\n },\n firstImport: state => {\n return state.import.firstImport;\n },\n importErrors: state => {\n return state.import.errors;\n },\n importStatus: state => {\n return state.import.status;\n },\n importAllowCancel: state => {\n return state.allowCancel;\n },\n importFeedback: state => {\n return state.import.feedback;\n },\n importDuplicates: state => {\n return state.import.duplicates;\n },\n importSkip: state => {\n return state.import.skip;\n },\n importFramework: state => {\n return state.import.framework;\n },\n importFrameworkName: state => {\n return state.import.frameworkName;\n },\n importFrameworkNameColumn: state => {\n return state.import.frameworkNameColumn;\n },\n importFrameworkScopeColumn: state => {\n return state.import.frameworkScopeColumn;\n },\n importFrameworkIdColumn: state => {\n return state.import.frameworkIdColumn;\n },\n importFrameworkDescription: state => {\n return state.import.frameworkDescription;\n },\n importText: state => {\n return state.import.importText;\n },\n importServerUrl: state => {\n return state.import.serverUrl;\n },\n importUrl: state => {\n return state.import.url;\n },\n importNameColumn: state => {\n return state.import.importCsv.nameColumn;\n },\n importDescriptionColumn: state => {\n return state.import.importCsv.descriptionColumn;\n },\n importScopeColumn: state => {\n return state.import.importCsv.scopeColumn;\n },\n importIdColumn: state => {\n return state.import.importCsv.idColumn;\n },\n importSourceColumn: state => {\n return state.import.importCsv.sourceColumn;\n },\n importRelationColumn: state => {\n return state.import.importCsv.relationColumn;\n },\n importTargetColumn: state => {\n return state.import.importCsv.targetColumn;\n },\n importModalParams: state => {\n return state.import.importModalParams;\n },\n searchTerm: state => {\n return state.frameworks.searchTerm;\n },\n sortResults: state => {\n return state.frameworks.sortResults;\n },\n quickFilters: state => {\n return state.frameworks.quickFilters;\n },\n filterByOwnedByMe: (state) => {\n let filter = state.frameworks.quickFilters.find((filter) => filter.id === \"ownedByMe\");\n if (!filter) {\n return false;\n }\n if (Array.isArray(filter) && filter.length > 0) {\n return filter[0].checked;\n } else {\n return filter.checked;\n }\n },\n filterByNotOwnedByMe: (state) => {\n let filter = state.frameworks.quickFilters.find((filter) => filter.id === \"notOwnedByMe\");\n if (!filter) {\n return false;\n }\n if (Array.isArray(filter) && filter.length > 0) {\n return filter[0].checked;\n } else {\n return filter.checked;\n }\n },\n filterByConfigMatchDefault: (state) => {\n let filter = state.frameworks.quickFilters.find((filter) => filter.id === \"configMatchDefault\");\n if (!filter) {\n return false;\n }\n if (Array.isArray(filter) && filter.length > 0) {\n return filter[0].checked;\n } else {\n return filter.checked;\n }\n },\n applySearchTo: state => {\n return state.frameworks.applySearchTo;\n },\n refreshSearch: state => {\n return state.frameworks.refreshSearch;\n },\n csvColumns: state => {\n return state.import.csvColumns;\n },\n csvRelationColumns: state => {\n return state.import.csvRelationColumns;\n },\n csvRelationFile: state => {\n return state.import.csvRelationFile;\n },\n pluginLastUpdate: state => {\n return state.pluginLastUpdate;\n },\n pluginToLaunch: state => {\n return state.pluginToLaunch;\n },\n pluginToLaunchLastUpdate: state => {\n return state.pluginToLaunchLastUpdate;\n },\n selectedDirectory: state => {\n return state.directories.selectedDirectory;\n },\n directoryList: state => {\n return state.directories.directoryList;\n },\n searchingInDirectory: state => {\n return state.directories.searchingInDirectory;\n },\n editDirectory: state => {\n return state.directories.editDirectory;\n },\n searchFrameworksInCompetencySearch: state => {\n return state.frameworks.searchFrameworksInCompetencySearch;\n },\n bannerMessage: state => {\n return state.banner.message;\n },\n bannerColor: state => {\n return state.banner.color;\n },\n bannerBackground: state => {\n return state.banner.background;\n },\n motdTitle: state => {\n return state.motd.title;\n },\n motdMessage: state => {\n return state.motd.message;\n },\n curatedPlugins: state => {\n return state.curatedPlugins;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n loggedOnPerson: {},\n repoInit: {\n ssoLogin: null,\n ssoLogout: null,\n ssoPublicKey: null\n },\n lastLogin: null\n};\nconst mutations = {\n loggedOnPerson(state, personObj) {\n state.loggedOnPerson = personObj;\n if (window.EcIdentityManager.default.ids.length > 0) {\n state.lastLogin = window.EcIdentityManager.default.ids[0].lastLogin;\n } else {\n state.lastLogin = null;\n }\n },\n repositorySsoOptions(state, repoInit) {\n state.repoInit.ssoLogin = repoInit.ssoLogin;\n state.repoInit.ssoLogout = repoInit.ssoLogout;\n state.repoInit.ssoPublicKey = repoInit.ssoPublicKey;\n }\n};\nconst actions = {\n\n};\nconst getters = {\n loggedOnPerson: function(state) {\n return state.loggedOnPerson;\n },\n repositorySsoOptions: function(state) {\n return state.repoInit;\n },\n lastLogin: function(state) {\n return state.lastLogin;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n step: 0,\n frameworkSource: null,\n frameworkSourceRelationships: null,\n frameworkTarget: null,\n frameworkTargetRelationships: null,\n relevantExistingAlignmentsMap: null,\n relevantExistingAlignmentsMapLastUpdate: null,\n alignedCompetenciesList: [],\n workingAlignmentsMap: {\n source: '',\n targets: [],\n initialTargets: [],\n removedTargets: [],\n changed: false,\n type: ''\n },\n alignmentsToSave: [],\n alignmentsToDelete: [],\n sourceState: 'ready',\n targetState: 'ready',\n targetNodesToHighlight: [],\n enabledRelationshipTypes: [],\n enabledRelationshipTypesLastUpdate: null\n};\n\nconst mutations = {\n enabledRelationshipTypesLastUpdate(state, f) {\n state.enabledRelationshipTypesLastUpdate = f;\n },\n enabledRelationshipTypes(state, f) {\n state.enabledRelationshipTypes = f;\n },\n targetNodesToHighlight(state, f) {\n state.targetNodesToHighlight = f;\n },\n frameworkSource(state, f) {\n state.frameworkSource = f;\n },\n frameworkTarget(state, f) {\n state.frameworkTarget = f;\n },\n frameworkSourceRelationships(state, f) {\n state.frameworkSourceRelationships = f;\n },\n frameworkTargetRelationships(state, f) {\n state.frameworkTargetRelationships = f;\n },\n relevantExistingAlignmentsMap(state, f) {\n state.relevantExistingAlignmentsMap = f;\n },\n relevantExistingAlignmentsMapLastUpdate(state, f) {\n state.relevantExistingAlignmentsMapLastUpdate = f;\n },\n alignedCompetenciesList(state, f) {\n state.alignedCompetenciesList = f;\n },\n step(state, val) {\n state.step = val;\n },\n workingAlignmentsSource(state, c) {\n state.workingAlignmentsMap.source = c;\n },\n workingAlignmentsTargets(state, c) {\n state.workingAlignmentsMap.targets = c;\n },\n workingAlignmentsType(state, a) {\n state.workingAlignmentsMap.type = a;\n },\n sourceState(state, s) {\n state.sourceState = s;\n },\n targetState(state, t) {\n state.targetState = t;\n },\n alignmentsToSave(state, t) {\n state.alignmentsToSave = t;\n },\n populateAlignedCompetenciesList(state) {\n if (state.relevantExistingAlignmentsMap) {\n let alignedCompetencies = [];\n let sourceComps = Object.keys(state.relevantExistingAlignmentsMap);\n for (let sc of sourceComps) {\n alignedCompetencies.push(sc);\n let alignTypes = Object.keys(state.relevantExistingAlignmentsMap[sc]);\n for (let scAt of alignTypes) {\n let targetIds = Object.keys(state.relevantExistingAlignmentsMap[sc][scAt]);\n for (let ti of targetIds) {\n alignedCompetencies.push(ti);\n }\n }\n }\n state.alignedCompetenciesList = alignedCompetencies;\n }\n },\n populateWorkingAlignmentMap(state) {\n if (state.relevantExistingAlignmentsMap[state.workingAlignmentsMap.source] &&\n state.relevantExistingAlignmentsMap[state.workingAlignmentsMap.source][state.workingAlignmentsMap.type]) {\n let sourceTypeAlignMap = state.relevantExistingAlignmentsMap[state.workingAlignmentsMap.source][state.workingAlignmentsMap.type];\n let targetIds = Object.keys(sourceTypeAlignMap);\n for (let ti of targetIds) {\n state.workingAlignmentsMap.targets.push(ti);\n state.workingAlignmentsMap.initialTargets.push(ti);\n }\n }\n state.workingAlignmentsMap.changed = false;\n },\n resetFrameworkSourceRelationships(state) {\n state.frameworkSourceRelationships = null;\n state.relevantExistingAlignmentsMap = null;\n },\n resetFrameworkTargetRelationships(state) {\n state.frameworkTargetRelationships = null;\n state.relevantExistingAlignmentsMap = null;\n },\n resetCrosswalkFrameworks(state) {\n state.frameworkSource = null;\n state.frameworkTarget = null;\n state.frameworkSourceRelationships = null;\n state.frameworkTargetRelationships = null;\n state.relevantExistingAlignmentsMap = null;\n },\n resetCrosswalkAlignmentsAndState(state) {\n state.workingAlignmentsMap.source = '';\n state.workingAlignmentsMap.targets = [];\n state.workingAlignmentsMap.initialTargets = [];\n state.workingAlignmentsMap.removedTargets = [];\n state.workingAlignmentsMap.changed = false;\n state.workingAlignmentsMap.type = '';\n state.sourceState = 'ready';\n state.targetState = 'ready';\n state.alignmentsToSave = [];\n state.alignmentsToDelete = [];\n },\n resetCrosswalk(state) {\n state.step = 0;\n state.workingAlignmentsMap.source = '';\n state.workingAlignmentsMap.targets = [];\n state.workingAlignmentsMap.initialTargets = [];\n state.workingAlignmentsMap.removedTargets = [];\n state.workingAlignmentsMap.changed = false;\n state.workingAlignmentsMap.type = '';\n state.sourceState = 'ready';\n state.targetState = 'ready';\n state.alignmentsToSave = [];\n state.alignmentsToDelete = [];\n },\n resetWorkingAlignmentsMap(state) {\n state.sourceState = 'ready';\n state.targetState = 'ready';\n state.workingAlignmentsMap = {\n source: '',\n targets: [],\n initialTargets: [],\n removedTargets: [],\n changed: false,\n type: ''\n };\n },\n addWorkingAlignmentsTarget(state, id) {\n let remTargets = state.workingAlignmentsMap.removedTargets;\n let filteredRemovedTargets = remTargets.filter(remTargets => remTargets !== id);\n state.workingAlignmentsMap.removedTargets = filteredRemovedTargets;\n state.workingAlignmentsMap.targets.push(id);\n if (state.workingAlignmentsMap.removedTargets.length > 0) state.workingAlignmentsMap.changed = true;\n else {\n let shouldSetToChanged = false;\n for (let t of state.workingAlignmentsMap.targets) {\n if (!state.workingAlignmentsMap.initialTargets.includes(t)) {\n shouldSetToChanged = true;\n break;\n }\n }\n if (shouldSetToChanged) state.workingAlignmentsMap.changed = true;\n else state.workingAlignmentsMap.changed = false;\n }\n },\n removeWorkingAlignmentsTarget(state, id) {\n let targets = state.workingAlignmentsMap.targets;\n let filtered = targets.filter(target => target !== id);\n state.workingAlignmentsMap.targets = filtered;\n if (state.workingAlignmentsMap.initialTargets.includes(id)) state.workingAlignmentsMap.removedTargets.push(id);\n if (state.workingAlignmentsMap.removedTargets.length > 0) state.workingAlignmentsMap.changed = true;\n else {\n let shouldSetToChanged = false;\n for (let t of state.workingAlignmentsMap.targets) {\n if (!state.workingAlignmentsMap.initialTargets.includes(t)) {\n shouldSetToChanged = true;\n break;\n }\n }\n if (shouldSetToChanged) state.workingAlignmentsMap.changed = true;\n else state.workingAlignmentsMap.changed = false;\n }\n },\n removeAlignmentFromRelevantAlignmentsMap(state, alignProps) {\n if (state.relevantExistingAlignmentsMap[alignProps.source]) {\n if (state.relevantExistingAlignmentsMap[alignProps.source][alignProps.type]) {\n if (state.relevantExistingAlignmentsMap[alignProps.source][alignProps.type][alignProps.target]) {\n let ream = state.relevantExistingAlignmentsMap;\n delete ream[alignProps.source][alignProps.type][alignProps.target];\n state.relevantExistingAlignmentsMap = ream;\n }\n }\n }\n },\n addAlignmentToRelevantAlignmentsMap(state, ecaObj) {\n let ream = state.relevantExistingAlignmentsMap;\n if (!ream[ecaObj.source]) ream[ecaObj.source] = {};\n if (!ream[ecaObj.source][ecaObj.relationType]) ream[ecaObj.source][ecaObj.relationType] = {};\n if (!ream[ecaObj.source][ecaObj.relationType][ecaObj.target]) ream[ecaObj.source][ecaObj.relationType][ecaObj.target] = ecaObj;\n state.relevantExistingAlignmentsMap = ream;\n },\n removeAlignmentFromAlignmentsToSave(state, alignProps) {\n let newAts = [];\n for (let a of state.alignmentsToSave) {\n if (!(a.source === alignProps.source && a.target === alignProps.target && a.relationType === alignProps.type)) {\n newAts.push(a);\n }\n }\n state.alignmentsToSave = newAts;\n },\n removeAlignmentFromAlignmentsToDelete(state, alignProps) {\n let newAtd = [];\n for (let a of state.alignmentsToDelete) {\n if (!(a.source === alignProps.source && a.target === alignProps.target && a.relationType === alignProps.type)) {\n newAtd.push(a);\n }\n }\n state.alignmentsToDelete = newAtd;\n },\n appendAlignmentsToDelete(state, alignment) {\n state.alignmentsToDelete.push(alignment);\n },\n appendAlignmentsToSave(state, alignment) {\n state.alignmentsToSave.push(alignment);\n }\n};\nconst actions = {\n\n};\nconst getters = {\n enabledRelationshipTypesLastUpdate: function(state) {\n return state.enabledRelationshipTypesLastUpdate;\n },\n enabledRelationshipTypes: function(state) {\n return state.enabledRelationshipTypes;\n },\n frameworkSource: function(state) {\n return state.frameworkSource;\n },\n frameworkTarget: function(state) {\n return state.frameworkTarget;\n },\n frameworkSourceRelationships: function(state) {\n return state.frameworkSourceRelationships;\n },\n frameworkTargetRelationships: function(state) {\n return state.frameworkTargetRelationships;\n },\n relevantExistingAlignmentsMap: function(state) {\n return state.relevantExistingAlignmentsMap;\n },\n relevantExistingAlignmentsMapLastUpdate: function(state) {\n return state.relevantExistingAlignmentsMapLastUpdate;\n },\n workingAlignmentsSource(state) {\n return state.workingAlignmentsMap.source;\n },\n workingAlignmentsTargets(state) {\n return state.workingAlignmentsMap.targets;\n },\n workingAlignmentsType(state, a) {\n return state.workingAlignmentsMap.type;\n },\n sourceState(state) {\n return state.sourceState;\n },\n targetState(state) {\n return state.targetState;\n },\n alignmentsToSave(state) {\n return state.alignmentsToSave;\n },\n alignmentsToDelete(state) {\n return state.alignmentsToDelete;\n },\n alignedCompetenciesList(state) {\n return state.alignedCompetenciesList;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n cassApiLocation: ''\n};\n\nconst mutations = {\n cassApiLocation(state, f) {\n state.cassApiLocation = f;\n }\n};\n\nconst actions = {\n};\n\nconst getters = {\n cassApiLocation: function(state) {\n return state.cassApiLocation;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","const state = {\n CONFIG_SEARCH_SIZE: 10000,\n DEFAULT_CONFIGURATION_TYPE: 'Configuration',\n DEFAULT_CONFIGURATION_CONTEXT: 'https://schema.cassproject.org/0.4/',\n LANG_STRING_RANGE: 'http://www.w3.org/2000/01/rdf-schema#langString',\n DEFAULT_HEADING: \"General\",\n LEVEL_SEARCH_SIZE: 10000,\n PERSON_SEARCH_SIZE: 10000,\n DEFAULT_CUSTOM_PROPERTY_CONTEXT: 'https://schema.cassproject.org/0.4/',\n DEFAULT_CUSTOM_PROPERTY_RANGE: 'http://schema.org/Text',\n defaultBrowserConfig: '',\n defaultBrowserConfigName: '',\n localDefaultBrowserConfig: '',\n configBusy: false,\n configList: [],\n configView: 'list',\n currentConfig: {},\n showConfirmDeleteConfigModal: false,\n showMustBeLoggedInModal: false,\n showBrowserConfigSetModal: false,\n configToDelete: {},\n availableConcepts: []\n};\n\nconst mutations = {\n setConfigToDelete(state, val) {\n state.configToDelete = val;\n },\n setShowMustBeLoggedInModal(state, val) {\n state.showMustBeLoggedInModal = val;\n },\n setShowBrowserConfigSetModal(state, val) {\n state.showBrowserConfigSetModal = val;\n },\n setShowConfirmDeleteConfigModal(state, val) {\n state.showConfirmDeleteConfigModal = val;\n },\n setCurrentConfig(state, val) {\n state.currentConfig = val;\n },\n setConfigView(state, val) {\n state.configView = val;\n },\n setConfigList(state, val) {\n state.setConfigList = val;\n },\n setConfigBusy(state, val) {\n state.configBusy = val;\n },\n setDefaultBrowserConfig(state, val) {\n state.defaultBrowserConfig = val;\n },\n setDefaultBrowserConfigName(state, val) {\n state.defaultBrowserConfigName = val;\n },\n setLocalDefaultBrowserConfig(state, val) {\n state.localDefaultBrowserConfig = val;\n },\n setAvailableConcepts(state, val) {\n state.availableConcepts = val;\n },\n setAvailableTypes(state, val) {\n state.availableTypes = val;\n }\n};\nconst actions = {\n\n};\nconst getters = {\n configToDelete: function(state) {\n return state.configToDelete;\n },\n showConfirmDeleteConfigModal: function(state) {\n return state.showConfirmDeleteConfigModal;\n },\n showMustBeLoggedInModal: function(state) {\n return state.showMustBeLoggedInModal;\n },\n showBrowserConfigSetModal: function(state) {\n return state.showBrowserConfigSetModal;\n },\n LEVEL_SEARCH_SIZE: function(state) {\n return state.LEVEL_SEARCH_SIZE;\n },\n GROUP_SEARCH_SIZE: function(state) {\n return state.GROUP_SEARCH_SIZE;\n },\n PERSON_SEARCH_SIZE: function(state) {\n return state.PERSON_SEARCH_SIZE;\n },\n DEFAULT_CUSTOM_PROPERTY_CONTEXT: function(state) {\n return state.DEFAULT_CUSTOM_PROPERTY_CONTEXT;\n },\n DEFAULT_CUSTOM_PROPERTY_RANGE: function(state) {\n return state.DEFAULT_CUSTOM_PROPERTY_RANGE;\n },\n DEFAULT_CONFIGURATION_TYPE: function(state) {\n return state.DEFAULT_CONFIGURATION_TYPE;\n },\n DEFAULT_CONFIGURATION_CONTEXT: function(state) {\n return state.DEFAULT_CONFIGURATION_CONTEXT;\n },\n LANG_STRING_RANGE: function(state) {\n return state.LANG_STRING_RANGE;\n },\n DEFAULT_HEADING: function(state) {\n return state.DEFAULT_HEADING;\n },\n CONFIG_SEARCH_SIZE(state) {\n return state.CONFIG_SEARCH_SIZE;\n },\n currentConfig(state) {\n return state.currentConfig;\n },\n configView(state) {\n return state.configView;\n },\n configList(state) {\n return state.configList;\n },\n defaultBrowserConfig(state) {\n return state.defaultBrowserConfig;\n },\n defaultBrowserConfigName(state) {\n return state.defaultBrowserConfigName;\n },\n localDefaultBrowserConfig(state) {\n return state.localDefaultBrowserConfig;\n },\n configBusy(state) {\n return state.configBusy;\n },\n availableConcepts(state) {\n return state.availableConcepts;\n },\n availableTypes(state) {\n return state.availableTypes;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n crosswalkEnabled: true,\n userManagementEnabled: true,\n configurationsEnabled: true,\n searchByOwnerNameEnabled: true,\n pluginsEnabled: true,\n loginEnabled: true,\n legacyLoginEnabled: true,\n apiLoginEnabled: false,\n shareEnabled: true,\n shareLink: false,\n ownedByMe: false\n};\n\nconst mutations = {\n crosswalkEnabled(state, bool) {\n state.crosswalkEnabled = bool;\n },\n userManagementEnabled(state, bool) {\n state.userManagementEnabled = bool;\n },\n configurationsEnabled(state, bool) {\n state.configurationsEnabled = bool;\n },\n searchByOwnerNameEnabled(state, bool) {\n state.searchByOwnerNameEnabled = bool;\n },\n pluginsEnabled(state, bool) {\n state.pluginsEnabled = bool;\n },\n loginEnabled(state, bool) {\n state.loginEnabled = bool;\n },\n apiLoginEnabled(state, bool) {\n state.apiLoginEnabled = bool;\n },\n legacyLoginEnabled(state, bool) {\n state.legacyLoginEnabled = bool;\n },\n shareEnabled(state, bool) {\n state.shareEnabled = bool;\n },\n shareLink(state, bool) {\n state.shareLink = bool;\n },\n ownedByMe(state, bool) {\n state.ownedByMe = bool;\n }\n};\n\nconst actions = {\n\n};\n\nconst getters = {\n legacyLoginEnabled: function(state) {\n return state.legacyLoginEnabled;\n },\n apiLoginEnabled: function(state) {\n return state.apiLoginEnabled;\n },\n ownedByMe: function(state) {\n return state.ownedByMe;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport lode from './modules/lode.js';\nimport editor from './modules/editor.js';\nimport app from './modules/app.js';\nimport user from './modules/user.js';\nimport crosswalk from './modules/crosswalk.js';\nimport environment from './modules/environment.js';\nimport configuration from './modules/configuration.js';\nimport featuresEnabled from './modules/featuresEnabled.js';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n modules: {\n lode,\n editor,\n app,\n user,\n crosswalk,\n environment,\n featuresEnabled,\n configuration\n }\n});\n","/* (ignored) */","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicModal.vue?vue&type=style&index=0&id=704681ec&prod&lang=scss\"","// extracted by mini-css-extract-plugin","import Vue from 'vue';\nimport VueProgressBar from 'vue-progressbar';\nimport App from './App.vue';\nimport './scss/theme.scss';\nimport './scss/styles.scss';\nimport router from './router';\nimport Vuex from 'vuex';\nimport Clipboard from 'v-clipboard';\nimport store from './store/index.js';\nimport InfiniteLoading from 'vue-infinite-loading';\nimport VueResource from 'vue-resource';\n\nimport VueObserveVisibility from 'vue-observe-visibility';\nimport AsyncComputed from 'vue-async-computed';\n\nvar VueScrollTo = require('vue-scrollto');\n\nconst {fetch: originalFetch} = global;\n\nlet PENDING_REQUESTS = 0;\nconst MAX_REQUESTS_COUNT = 10;\nconst INTERVAL_MS = 10;\n\nglobal.fetch = async(...args) => {\n let [resource, config] = args;\n // request interceptor here\n if (PENDING_REQUESTS >= MAX_REQUESTS_COUNT) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(global.fetch(...args));\n }, INTERVAL_MS);\n });\n } else {\n PENDING_REQUESTS++;\n try {\n if (config != null && config.headers != null && Object.values(config.headers).length === 0) {\n delete config.headers;\n }\n const response = await originalFetch(resource, config);\n // response interceptor here\n return response;\n } finally {\n PENDING_REQUESTS = Math.max(0, PENDING_REQUESTS - 1);\n }\n }\n};\n\n\nrequire(\"cassproject\");\nglobal.UUID = require('pure-uuid');\n\nconst options = {\n color: '#68C8DB',\n failedColor: '#D74C44',\n thickness: '5px',\n transition: {\n speed: '0.2s',\n opacity: '0.6s',\n termination: 300\n },\n autoRevert: true,\n location: 'top',\n inverse: false\n};\n\nVue.use(VueProgressBar, options);\nVue.use(require('vue-moment'));\nVue.use(Vuex);\nVue.use(Clipboard);\nVue.use(VueScrollTo, {\n container: \"#framework\",\n duration: 500,\n easing: \"ease\",\n offset: -150,\n force: true,\n cancelable: true,\n onStart: false,\n onDone: false,\n onCancel: false,\n x: false,\n y: true\n});\nVue.use(InfiniteLoading);\nVue.use(VueResource);\nVue.use(VueObserveVisibility);\nVue.use(AsyncComputed);\n\n// directive for clicking outside elements and performing an action\n// add v-click-outside=\"method\" to parent element to do something\nVue.directive('click-outside', {\n bind: function(element, binding, vnode) {\n element.clickOutsideEvent = function(event) {\n if (!(element === event.target || element.contains(event.target))) {\n vnode.context[binding.expression](event);\n }\n };\n document.body.addEventListener('click', element.clickOutsideEvent);\n },\n unbind: function(element) {\n document.body.removeEventListener('click', element.clickOutsideEvent);\n }\n});\n\nEcRepository.caching = true;\nEcRepository.cachingL2 = true;\n\nVue.config.productionTip = false;\n// Vue.config.silent = true;\nVue.config.warnHandler = function(msg, vm, trace) {\n if (msg === 'Invalid prop: type check failed for prop \"clickToLoad\". Expected Boolean, got String with value \"true\".') return;\n if (msg === 'Avoid using non-primitive value as key, use string/number value instead.') return;\n if (msg === \"Duplicate keys detected: '[object Object]'. This may cause an update error.\") return;\n appError((\"[Vue warn]: \" + msg + trace));\n // `trace` is the component hierarchy trace\n};\n\nglobal.appLog = function(x) {\n /* eslint-disable no-console */\n if (process.env.NODE_ENV !== 'production') {\n // console.trace(x);\n console.log(x);\n }\n /* eslint-enable no-console */\n};\n\nglobal.appError = function(x) {\n /* eslint-disable no-console */\n if (process.env.NODE_ENV !== 'production') {\n console.error(x);\n }\n /* eslint-enable no-console */\n};\n\nvar queryParams = function() {\n if (window.document.location.search == null) { return {}; }\n var hashSplit = (window.document.location.search.split(\"?\"));\n if (hashSplit.length > 1) {\n var o = {};\n var paramString = hashSplit[1];\n var parts = (paramString).split(\"&\");\n for (var i = 0; i < parts.length; i++) {\n if (o[parts[i].split(\"=\")[0]]) {\n // Allow multiple values\n o[parts[i].split(\"=\")[0]] = [o[parts[i].split(\"=\")[0]]];\n o[parts[i].split(\"=\")[0]].push(decodeURIComponent(parts[i].replace(parts[i].split(\"=\")[0] + \"=\", \"\")));\n } else {\n o[parts[i].split(\"=\")[0]] = decodeURIComponent(parts[i].replace(parts[i].split(\"=\")[0] + \"=\", \"\"));\n }\n }\n return o;\n }\n return {};\n};\nwindow.queryParams = queryParams();\n\nwindow.app = new Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app');\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=414a336e&prod&lang=scss\"","/* (ignored) */","// extracted by mini-css-extract-plugin","/* (ignored) */","/* (ignored) */","\n\n\n\n\n","global.jsonld = require('jsonld');\n\n\nconst state = {\n schemata: {},\n isSavingProperty: false,\n isSavingThing: false,\n isAddingProperty: false,\n addingProperty: '',\n addingValues: [],\n addingRange: [],\n addingChecked: [],\n removeAddingValueAtIndex: null,\n schemataLookup: {},\n rawSchemata: {},\n schemaFallback: {},\n objectModel: {},\n competencySearchModalOpen: false,\n copyOrLink: false,\n numPropertyComponentsVisible: {},\n searchType: null,\n includeRelations: true\n};\nconst actions = {\n schemata({state, commit}, schema) {\n commit('setSchemata', schema);\n if (EcArray.isArray(schema.obj)) {\n commit('setEmptySchemataLookup', schema);\n for (var i = 0; i < schema.obj.length; i++) {\n let scheme = schema.obj[i];\n commit('setSchemataLookup', {'index': i, 'schema': schema});\n if (scheme[\"http://schema.org/domainIncludes\"] != null) {\n for (var domainType of scheme[\"http://schema.org/domainIncludes\"]) {\n if (state.objectModel[domainType[\"@id\"]] == null) {\n commit('setObjectModel', {'type': domainType, 'val': {}});\n }\n let om = state.objectModel[domainType[\"@id\"]];\n om[scheme[\"@id\"]] = scheme;\n }\n }\n }\n }\n },\n schemaFallback({state}, schema) {\n for (var i = 0; i < schema.length; i++) {\n let scheme = schema[i];\n state.schemaFallback[scheme[\"@id\"]] = schema[i];\n if (scheme[\"http://schema.org/domainIncludes\"] != null) {\n for (var domainType of scheme[\"http://schema.org/domainIncludes\"]) {\n if (state.objectModel[domainType[\"@id\"]] == null) {\n state.objectModel[domainType[\"@id\"]] = {};\n }\n let om = state.objectModel[domainType[\"@id\"]];\n om[scheme[\"@id\"]] = scheme;\n }\n }\n }\n }\n};\nconst mutations = {\n setIsSavingProperty(state, value) {\n state.isSavingProperty = value;\n },\n setIsSavingThing(state, value) {\n state.isSavingThing = value;\n },\n setIsAddingProperty(state, value) {\n state.isAddingProperty = value;\n },\n setAddingProperty(state, value) {\n state.addingProperty = value;\n },\n setAddingValues(state, values) {\n let newValues = [];\n if (Array.isArray(values)) {\n values.forEach((value) => {\n if (value) {\n let newValue = trimUrl(value);\n if (newValue) newValues.push(newValue);\n }\n });\n } else {\n if (values) {\n let newValue = trimUrl(values);\n if (newValue) newValues.push(newValue);\n }\n }\n state.addingValues = newValues;\n },\n addToAddingValues(state, value) {\n let newValue = trimUrl(value);\n if (!state.addingValues) {\n state.addingValues = [];\n }\n if (newValue) {\n state.addingValues.push(newValue);\n }\n },\n setAddingRange(state, value) {\n state.addingRange = value;\n },\n setAddingChecked(state, value) {\n state.addingChecked = value;\n },\n removeAddingValueAtIndex(state, value) {\n state.removeAddingValueAtIndex = value;\n },\n setSchemata(state, schema) {\n state.schemata[schema.id] = schema.obj;\n },\n setSchemataLookup(state, payload) {\n let i = payload.index;\n let schema = payload.schema;\n state.schemataLookup[schema.id][schema.obj[i][\"@id\"]] = schema.obj[i];\n },\n setEmptySchemataLookup(state, schema) {\n state.schemataLookup[schema.id] = {};\n },\n setObjectModel(state, payload) {\n let domainType = payload.type;\n let val = payload.val;\n state.objectModel[domainType[\"@id\"]] = val;\n },\n rawSchemata(state, schema) {\n state.rawSchemata[schema.id] = schema.obj;\n },\n competencySearchModalOpen(state, bool) {\n state.competencySearchModalOpen = bool;\n },\n copyOrLink(state, bool) {\n state.copyOrLink = bool;\n },\n incrementNumPropertyComponents(state, thingId) {\n if (!state.numPropertyComponentsVisible[thingId]) {\n state.numPropertyComponentsVisible[thingId] = 0;\n }\n state.numPropertyComponentsVisible[thingId]++;\n },\n decrementNumPropertyComponents(state, thingId) {\n state.numPropertyComponentsVisible[thingId]--;\n if (state.numPropertyComponentsVisible[thingId] === 0) {\n delete state.numPropertyComponentsVisible[thingId];\n }\n },\n searchType(state, type) {\n state.searchType = type;\n },\n includeRelations(state, bool) {\n state.includeRelations = bool;\n }\n};\nconst getters = {\n isSavingProperty(state) {\n return state.isSavingProperty;\n },\n isSavingThing(state) {\n return state.isSavingThing;\n },\n isAddingProperty(state) {\n return state.isAddingProperty;\n },\n addingProperty(state) {\n return state.addingProperty;\n },\n addingValues(state) {\n return state.addingValues;\n },\n addingRange(state) {\n return state.addingRange;\n },\n addingChecked(state) {\n return state.addingChecked;\n },\n removeAddingValueAtIndex(state) {\n return state.removeAddingValueAtIndex;\n },\n includeRelations(state) {\n return state.includeRelations;\n }\n};\n\nfunction trimUrl(url) {\n if (!url) {\n return undefined;\n }\n if (url === \"\" || (url[\"@value\"] && url[\"@value\"] === \"\")) {\n return undefined;\n }\n let trimmed = url;\n if (trimmed[\"@value\"] && typeof trimmed[\"@value\"] === \"string\" && trimmed[\"@value\"].endsWith(\"/\")) {\n trimmed[\"@value\"] = trimmed[\"@value\"].slice(0, trimmed[\"@value\"].length - 1);\n }\n if (trimmed[\"@value\"] && typeof trimmed[\"@value\"] === \"string\" && trimmed[\"@value\"].startsWith(\"/\")) {\n trimmed[\"@value\"] = trimmed[\"@value\"].slice(1);\n }\n if (trimmed && typeof trimmed === \"string\" && trimmed.endsWith(\"/\")) {\n trimmed = trimmed.slice(0, trimmed.length - 1);\n }\n if (trimmed && typeof trimmed === \"string\" && trimmed.startsWith(\"/\")) {\n trimmed = trimmed.slice(1);\n }\n return trimmed;\n}\n\njsonld.documentLoader = async function(url) {\n if (url in state.rawSchemata) {\n return {\n contextUrl: null, // this is for a context via a link header\n document: state.rawSchemata[url], // this is the actual document that was loaded\n documentUrl: url // this is the actual context URL after redirects\n };\n } else {\n var context;\n var xmlhttp = new XMLHttpRequest();\n xmlhttp.onreadystatechange = function() {\n if (this.readyState === 4 && this.status === 200) {\n context = JSON.parse(this.responseText);\n state.rawSchemata[originalUrl] = context;\n }\n };\n let originalUrl = url;\n let index = url.indexOf('schema.cassproject.org');\n let ending = \"\";\n if (url.substring(url.lastIndexOf('/')).indexOf('2') === -1) {\n ending = \"/index.json-ld\";\n }\n if (index !== -1) {\n url = url.substring(index);\n url = window.location.origin + window.location.pathname + url + ending;\n }\n xmlhttp.open(\"GET\", url, false);\n xmlhttp.setRequestHeader(\"Accept\", \"application/json\");\n xmlhttp.send();\n return {\n contextUrl: null, // this is for a context via a link header\n document: context, // this is the actual document that was loaded\n documentUrl: originalUrl // this is the actual context URL after redirects\n };\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};","import dateFormat from 'dateformat';\n\nexport default {\n data() {\n return {\n conceptCtids: null,\n conceptRegistryUrls: null\n };\n },\n computed: {\n ctids: function() {\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return null;\n }\n if (this.$store.getters['editor/queryParams'] && (this.$store.getters['editor/queryParams'].ceasnDataFields !== \"true\")) {\n return null;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@value\": this.getCTID(framework.shortId())}];\n if (framework.competency) {\n for (var i = 0; i < framework.competency.length; i++) {\n obj[framework.competency[i]] = [{\"@value\": this.getCTID(framework.competency[i])}];\n }\n }\n return obj;\n },\n registryURLs: function() {\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return null;\n }\n if (this.$store.getters['editor/queryParams'] && (this.$store.getters['editor/queryParams'].ceasnDataFields !== \"true\")) {\n return null;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@id\": this.ceasnRegistryUriTransform(framework.shortId())}];\n if (framework.competency) {\n for (var i = 0; i < framework.competency.length; i++) {\n obj[framework.competency[i]] = [{\"@id\": this.ceasnRegistryUriTransform(framework.competency[i])}];\n }\n }\n return obj;\n }\n },\n methods: {\n canEditAny: function(item) {\n if (this.isAdmin()) return true;\n if (item.canEditAny == null) return true;\n return item.canEditAny(EcIdentityManager.default.getMyPks());\n },\n isAdmin: function() {\n let adminKeys = window.repo.adminKeys;\n let userIds = EcIdentityManager.default.ids;\n if (!Array.isArray(adminKeys)) return false;\n if (!Array.isArray(userIds)) return false;\n for (let userId of userIds) {\n let userKey = userId.ppk.toPk().toPem();\n for (let adminKey of adminKeys) {\n if (userKey === adminKey) {\n return true;\n }\n }\n }\n return false;\n },\n getConceptCtids: async function() {\n this.conceptCtids = null;\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return;\n }\n var me = this;\n if (this.queryParams.ceasnDataFields !== \"true\") {\n return;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@value\": this.getCTID(framework.shortId())}];\n var subCtids = async function(ary) {\n for (var i = 0; i < ary.length; i++) {\n obj[ary[i]] = [{\"@value\": me.getCTID(ary[i])}];\n var concept = await EcConcept.get(ary[i]);\n if (concept[\"skos:narrower\"]) {\n await subCtids(concept[\"skos:narrower\"]);\n }\n }\n };\n if (framework[\"skos:hasTopConcept\"]) {\n await subCtids(framework[\"skos:hasTopConcept\"]);\n }\n this.conceptCtids = obj;\n },\n getConceptRegistryUrls: async function() {\n this.conceptRegistryUrls = null;\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return;\n }\n var me = this;\n if (this.queryParams.ceasnDataFields !== \"true\") {\n return;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@id\": this.ceasnRegistryUriTransform(framework.shortId())}];\n var subURLs = async function(ary) {\n for (var i = 0; i < ary.length; i++) {\n obj[ary[i]] = [{\"@value\": me.ceasnRegistryUriTransform(ary[i])}];\n var concept = await EcConcept.get(ary[i]);\n if (concept[\"skos:narrower\"]) {\n await subURLs(concept[\"skos:narrower\"]);\n }\n }\n };\n if (framework[\"skos:hasTopConcept\"]) {\n await subURLs(framework[\"skos:hasTopConcept\"]);\n }\n this.conceptRegistryUrls = obj;\n },\n spitEvent: function(message, id, page) {\n var framework = this.framework ? this.framework : this.$store.state.editor.framework;\n var selectedCompetency = this.$store.state.editor.selectedCompetency;\n let frameworkName = null;\n if (framework) {\n if (framework[\"dcterms:title\"]) {\n frameworkName = schema.Thing.getDisplayStringFrom(framework[\"dcterms:title\"]);\n } else {\n frameworkName = framework.getName();\n }\n }\n let compName = null;\n if (selectedCompetency) {\n if (selectedCompetency[\"skos:prefLabel\"]) {\n compName = schema.Thing.getDisplayStringFrom(selectedCompetency[\"skos:prefLabel\"]);\n } else {\n compName = selectedCompetency.getName();\n }\n }\n var evt = {\n message: message,\n changed: id,\n selectedFramework: framework == null ? null : framework.shortId(),\n selectedCompetency: selectedCompetency == null ? null : selectedCompetency.shortId(),\n selectedFrameworkObject: framework == null ? null : JSON.parse(framework.toJson()),\n selectedCompetencyObject: selectedCompetency == null ? null : JSON.parse(selectedCompetency.toJson()),\n selectedFrameworkName: frameworkName,\n selectedCompetencyName: compName,\n visiblePage: page\n };\n if (this.queryParams && this.queryParams.ceasnDataFields === \"true\") {\n if (framework != null) {\n if (framework.getGuid != null) {\n if (framework.getGuid().startsWith(\"ce-\")) {\n evt.selectedFrameworkCtid = framework == null ? null : framework.getGuid();\n } else if (framework.getGuid().matches(\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")) {\n evt.selectedFrameworkCtid = framework == null ? null : \"ce-\" + framework.getGuid();\n } else {\n evt.selectedFrameworkCtid = \"ce-\" + new UUID(3, \"nil\", framework.shortId()).format();\n }\n }\n }\n if (selectedCompetency != null) {\n if (selectedCompetency.getGuid != null) {\n if (selectedCompetency.getGuid().startsWith(\"ce-\")) {\n evt.selectedCompetencyCtid = selectedCompetency == null ? null : selectedCompetency.getGuid();\n } else if (selectedCompetency.getGuid().matches(\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")) {\n evt.selectedCompetencyCtid = selectedCompetency == null ? null : \"ce-\" + selectedCompetency.getGuid();\n } else {\n evt.selectedCompetencyCtid = \"ce-\" + new UUID(3, \"nil\", this.framework.shortId() + selectedCompetency.shortId()).format();\n }\n }\n }\n }\n appLog(evt);\n if (parent != null) {\n if (this.queryParams && this.queryParams.origin != null && this.queryParams.origin !== '') {\n parent.postMessage(evt, this.queryParams.origin);\n }\n }\n },\n setDefaultLanguage: function() {\n var defaultLanguage;\n if (this.framework && this.framework[\"ceasn:inLanguage\"]) {\n defaultLanguage = EcArray.isArray(this.framework[\"ceasn:inLanguage\"]) ? this.framework[\"ceasn:inLanguage\"][0] : this.framework[\"ceasn:inLanguage\"];\n } else if (this.framework && this.framework[\"schema:inLanguage\"]) {\n defaultLanguage = EcArray.isArray(this.framework[\"schema:inLanguage\"]) ? this.framework[\"schema:inLanguage\"][0] : this.framework[\"schema:inLanguage\"];\n } else if (this.framework && this.framework[\"dcterms:language\"]) {\n defaultLanguage = EcArray.isArray(this.framework[\"dcterms:language\"]) ? this.framework[\"dcterms:language\"][0] : this.framework[\"dcterms:language\"];\n } else if (navigator.language || navigator.userLanguage) {\n defaultLanguage = navigator.language || navigator.userLanguage;\n } else {\n defaultLanguage = \"en\";\n }\n this.$store.commit('editor/defaultLanguage', defaultLanguage);\n },\n get: function(server, service, headers, success, failure) {\n var url = EcRemote.urlAppend(server, service);\n url = EcRemote.upgradeHttpToHttps(url);\n var xhr = null;\n if ((typeof httpStatus) === \"undefined\") {\n xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n if (headers != null) {\n var keys = EcObject.keys(headers);\n for (var i = 0; i < keys.length; i++) {\n xhr.setRequestHeader(keys[i], headers[keys[i]]);\n }\n }\n var xhrx = xhr;\n xhr.onreadystatechange = function() {\n if (xhrx.readyState === 4 && xhrx.status === 200) {\n if (success != null) {\n success(xhrx.responseText);\n } else if (xhrx.readyState === 4) {\n if (failure != null) {\n failure(xhrx.status + \" \" + xhrx.responseText);\n }\n }\n }\n };\n xhr.onload = function() {\n if (xhr.status !== 200) {\n failure(xhr.status);\n }\n };\n xhr.onerror = function() {\n failure(\"Failed while sending request.\");\n };\n }\n if (xhr != null) {\n (xhr)[\"timeout\"] = EcRemote.timeout;\n }\n if ((typeof httpStatus) !== \"undefined\") {\n if (success != null) {\n success(JSON.stringify(httpGet(url)));\n }\n } else {\n xhr.send();\n }\n },\n resolveNameFromUrl: function(url) {\n this.get(url, null, null, function(data) {\n var name = null;\n if (data) {\n if (data[0] === \"<\") {\n return;\n }\n data = JSON.parse(data);\n if (data['ceterms:name']) {\n name = data['ceterms:name'];\n } else if (data['ceasn:competencyText']) {\n name = data['ceasn:competencyText'];\n } else if (data['name']) {\n name = data['name'];\n } else if (data['schema:name']) {\n name = data['schema:name'];\n } else if (data['title']) {\n name = data['title'];\n } else if (data['skos:prefLabel']) {\n name = data['skos:prefLabel'];\n } else if (data['title']) {\n name = data['title'];\n } else if (data['@graph'] && data['@graph'][0]) {\n if (data['@graph'][0]['ceterms:name']) {\n name = data['@graph'][0]['ceterms:name'];\n } else if (data['@graph'][0]['name']) {\n name = data['@graph'][0]['name'];\n } else if (data['@graph'][0]['schema:name']) {\n name = data['@graph'][0]['schema:name'];\n } else if (data['@graph'][0]['title']) {\n name = data['@graph'][0]['title'];\n } else if (data['@graph'][0]['skos:prefLabel']) {\n name = data['@graph'][0]['skos:prefLabel'];\n }\n }\n // If it's a langstring\n name = schema.Thing.getDisplayStringFrom(name);\n // If still object, display value\n if (EcObject.isObject(name)) {\n var langs = Object.keys(name);\n name = name[langs[0]];\n }\n }\n return name;\n }, function(error) {\n appLog(error);\n });\n },\n conditionalDelete: function(id, depth) {\n var me = this;\n (function(id, depth) {\n Task.asyncImmediate(function(callback) {\n if (depth === undefined || depth == null) depth = 0;\n if (id == null || id === undefined) {\n appLog(\"ID is undefined.\");\n }\n if (depth < 5) {\n EcFramework.search(window.repo, \"\\\"\" + id + \"\\\"\", async function(results) {\n if (results.length <= 0) {\n appLog(\"No references found for \" + id + \"... deleting.\");\n let obj = await EcRepository.get(id);\n window.repo.deleteRegistered(obj, function(success) {\n if (obj.type === \"Level\") {\n me.$store.commit('editor/refreshLevels', true);\n }\n callback();\n }, function(failure) {\n appLog(failure);\n callback();\n });\n } else {\n appLog(results.length + \" references found for \" + id + \"... Not deleting. Will see again in another second.\");\n callback();\n setTimeout(function() {\n me.conditionalDelete(id, depth + 1);\n }, 1000);\n }\n }, appError, {});\n } else {\n callback();\n }\n });\n })(id, depth);\n },\n selectButton: async function(selectedArray) {\n var ary = [];\n if (!selectedArray) {\n selectedArray = this.selectedArray;\n }\n for (var i = 0; i < selectedArray.length; i++) {\n if (this.queryParams.selectVerbose === \"true\" && this.$store.getters['editor/conceptMode'] !== true && this.$store.getters['editor/progressionMode'] !== true) {\n if (this.queryParams.selectExport === \"ctdlasn\") {\n var link;\n if (EcRepository.shouldTryUrl(selectedArray[i]) === false && selectedArray[i].indexOf(window.repo.selectedServer) === -1) {\n link = window.repo.selectedServer + \"ceasn/\" + EcCrypto.md5(selectedArray[i]);\n } else {\n link = selectedArray[i].replace(\"/data/\", \"/ceasn/\");\n }\n let success = await EcRemote.getExpectingObject(link);\n if (success) {\n ary.push(success);\n }\n } else {\n ary.push(JSON.parse((await EcCompetency.get(selectedArray[i])).toJson()));\n }\n } else if (this.queryParams.selectVerbose === \"true\") {\n ary.push(JSON.parse((await EcConcept.get(selectedArray[i])).toJson()));\n } else {\n ary.push(selectedArray[i]);\n }\n }\n if (this.queryParams.selectRelations === \"true\" && this.framework.relation) {\n for (var i = 0; i < this.framework.relation.length; i++) {\n var relation = await EcAlignment.get(this.framework.relation[i]);\n if (EcArray.has(selectedArray, relation.target)) {\n if (this.queryParams.selectVerbose === \"true\") {\n ary.push(JSON.parse((relation).toJson()));\n } else {\n ary.push(relation.shortId());\n }\n }\n }\n }\n var currentFramework = this.framework;\n if (this.queryParams.selectExport === \"ctdlasn\" && this.$store.getters['editor/conceptMode'] !== true && this.$store.getters['editor/progressionMode'] !== true) {\n if (this.framework != null) {\n var link;\n if (EcRepository.shouldTryUrl(this.framework.id) === false && this.framework.id.indexOf(window.repo.selectedServer) === -1) {\n link = window.repo.selectedServer + \"ceasn/\" + EcCrypto.md5(this.framework.shortId());\n } else {\n link = this.framework.id.replace(\"/data/\", \"/ceasn/\");\n }\n let success = await EcRemote.getExpectingObject(link);\n if (success) {\n // success = JSON.parse(success);\n if (success[\"@graph\"]) {\n currentFramework = success[\"@graph\"][0];\n }\n }\n }\n }\n var message = {\n message: \"selected\",\n selected: ary,\n type: ((this.$store.getters['editor/conceptMode'] === true || this.$store.getters['editor/progressionMode'] === true) ? 'Concept' : 'Competency'),\n selectedFramework: currentFramework\n };\n message = JSON.parse(JSON.stringify(message));\n appLog(message);\n parent.postMessage(message, this.queryParams.origin);\n },\n addLevel: async function(selectedCompetency, optionalLevelUrlOrName) {\n var c;\n var me = this;\n var framework = this.framework ? this.framework : this.$store.getters['editor/framework'];\n var initialLevels = framework.level ? framework.level.slice() : null;\n if (!optionalLevelUrlOrName || !optionalLevelUrlOrName.includes('http')) {\n c = new EcLevel();\n if (this.queryParams.newObjectEndpoint != null) {\n c.generateShortId(this.queryParams.newObjectEndpoint);\n } else {\n c.generateId(window.repo.selectedServer);\n }\n c[\"schema:dateCreated\"] = new Date().toISOString();\n c.name = (optionalLevelUrlOrName && optionalLevelUrlOrName !== \"\") ? optionalLevelUrlOrName : \"New Level\";\n c.competency = selectedCompetency;\n } else {\n optionalLevelUrlOrName = optionalLevelUrlOrName[0];\n var c = await EcRepository.get(optionalLevelUrlOrName);\n if (!c.competency) {\n c.competency = [];\n } else if (!EcArray.isArray(c.competency)) {\n c.competency = [c.competency];\n }\n c.competency.push(selectedCompetency);\n }\n framework[\"schema:dateModified\"] = new Date().toISOString();\n window.repo.saveTo(c, async function() {\n framework.addLevel(c.shortId());\n var edits = [];\n if (!optionalLevelUrlOrName || !optionalLevelUrlOrName.includes('http')) {\n edits.push({operation: \"addNew\", id: c.shortId()});\n }\n edits.push({operation: \"update\", id: framework.shortId(), fieldChanged: [\"level\"], initialValue: [initialLevels], changedValue: [framework.level]});\n me.$store.commit('editor/addEditsToUndo', edits);\n me.$store.commit('editor/framework', framework);\n if (me.$store.state.editor.private === true) {\n if (EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n }\n window.repo.saveTo(framework, function() {\n me.$store.commit('lode/setIsAddingProperty', false);\n me.$store.commit('editor/refreshLevels', true);\n }, appError);\n }, appError);\n },\n saveCheckedLevels: async function(selectedCompetency, checkedOptions, allOptions) {\n let competencyId = [];\n if (EcArray.isArray(selectedCompetency)) {\n competencyId = selectedCompetency;\n } else {\n competencyId.push(EcRemoteLinkedData.trimVersionFromUrl(selectedCompetency[\"@id\"]));\n }\n var initialLevels = this.framework.level ? this.framework.level.slice() : null;\n var frameworkChanged = false;\n var edits = [];\n var me = this;\n for (var i = 0; i < allOptions.length; i++) {\n if (!this.framework.level) {\n this.framework.level = [];\n }\n // If selected\n if (checkedOptions.indexOf(allOptions[i].val) !== -1) {\n var level = await EcLevel.get(allOptions[i].val);\n var initialComp = JSON.parse(JSON.stringify(level.competency));\n if (!EcArray.isArray(level.competency)) {\n level.competency = level.competency == null ? [] : [level.competency];\n }\n let levelChanged = false;\n for (let each in competencyId) {\n if (level.competency.indexOf(competencyId[each]) === -1) {\n level.competency.push(competencyId[each]);\n levelChanged = true;\n }\n }\n if (levelChanged) {\n edits.push({operation: \"update\", id: level.shortId(), fieldChanged: [\"competency\"], initialValue: [initialComp], changedValue: [level.competency]});\n window.repo.saveTo(level, function() {\n me.$store.commit('editor/refreshLevels', true);\n }, appError);\n }\n if (this.framework.level.indexOf(level.shortId()) === -1) {\n this.framework.addLevel(level.shortId());\n frameworkChanged = true;\n }\n } else {\n // If not selected\n var level = await EcLevel.get(allOptions[i].val);\n var initialComp = JSON.parse(JSON.stringify(level.competency));\n let levelChanged = false;\n for (let each in competencyId) {\n if (level.competency && level.competency.indexOf(competencyId[each]) !== -1) {\n EcArray.setRemove(level.competency, competencyId[each]);\n levelChanged = true;\n }\n }\n if (levelChanged) {\n edits.push({operation: \"update\", id: level.shortId(), fieldChanged: [\"competency\"], initialValue: [initialComp], changedValue: [level.competency]});\n window.repo.saveTo(level, function() {\n me.$store.commit('editor/refreshLevels', true);\n }, appError);\n }\n // If level doesn't have any competencies attached, remove it from the framework.\n if ((!level.competency || (level.competency && level.competency.length === 0)) && this.framework.level.indexOf(level.shortId()) !== -1) {\n EcArray.setRemove(this.framework.level, level.shortId());\n frameworkChanged = true;\n }\n }\n }\n if (frameworkChanged) {\n edits.push({operation: \"update\", id: this.framework.shortId(), fieldChanged: [\"level\"], initialValue: [initialLevels], changedValue: [this.framework.level]});\n this.saveFramework();\n }\n this.$store.commit('editor/addEditsToUndo', edits);\n this.$store.commit('lode/setAddingChecked', []);\n this.$store.commit('lode/setIsAddingProperty', false);\n },\n saveFramework: async function() {\n this.framework[\"schema:dateModified\"] = new Date().toISOString();\n var framework = this.framework;\n this.$store.commit('editor/framework', framework);\n if (this.$store.state.editor.private === true && EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n window.repo.saveTo(framework, function() {}, appError);\n },\n removeLevelFromFramework: async function(levelId) {\n var initialLevels = this.framework.level ? this.framework.level.slice() : null;\n this.framework.removeLevel(levelId);\n var level = await EcRepository.get(levelId);\n this.$store.commit('editor/addEditsToUndo', [\n {operation: \"delete\", obj: level},\n {operation: \"update\", id: this.framework.shortId(), fieldChanged: [this.framework.level], initialValue: [initialLevels], changedValue: [this.framework.level]}\n ]);\n this.conditionalDelete(levelId);\n this.saveFramework();\n this.$store.commit('editor/refreshLevels', true);\n },\n addRelationsToFramework: async function(selectedCompetency, property, values) {\n if (values.length > 0) {\n selectedCompetency = await EcRepository.get(selectedCompetency);\n await this.addAlignments(values, selectedCompetency, property);\n }\n },\n addAlignments: async function(targets, thing, relationType, allowSave) {\n if (this.$store.getters['editor/queryParams'].concepts === \"true\" || this.$store.getters['editor/conceptMode'] === true || this.$store.getters['editor/progressionMode'] === true) {\n return this.addConceptAlignments(targets, thing, relationType);\n }\n let urlProperties = [\n \"ceasn:knowledgeEmbodied\",\n \"ceasn:skillEmbodied\",\n \"ceasn:taskEmbodied\",\n \"ceasn:abilityEmbodied\",\n \"ceasn:comprisedOf\",\n \"ceasn:derivedFrom\",\n \"ceasn:inferredCompetency\",\n \"ceasn:isVersionOf\",\n \"ceasn:alignTo\",\n \"ceasn:alignFrom\"\n ];\n if (urlProperties.includes(relationType)) {\n // This property is attached to competency, not a relation attached to framework\n return this.addRelationAsCompetencyField(targets, thing, relationType, allowSave);\n }\n return new Promise(async(resolve, reject) => {\n var framework = this.$store.state.editor.framework;\n var edits = [];\n var initialRelations = framework.relation ? framework.relation.slice() : null;\n for (var i = 0; i < targets.length; i++) {\n var r = new EcAlignment();\n if (this.$store.getters['editor/queryParams'].newObjectEndpoint != null) {\n r.generateShortId(this.$store.getters['editor/queryParams'].newObjectEndpoint);\n } else {\n r.generateId(window.repo.selectedServer);\n }\n edits.push({operation: \"addNew\", id: r.shortId()});\n r[\"schema:dateCreated\"] = new Date().toISOString();\n r.target = EcRemoteLinkedData.trimVersionFromUrl(targets[i]);\n if (thing.id) {\n r.source = thing.shortId();\n } else {\n r.source = EcRemoteLinkedData.trimVersionFromUrl(thing[\"@id\"]);\n }\n if (r.target === r.source) {\n return;\n }\n r.relationType = relationType;\n if (r.relationType === \"broadens\") {\n var dosedo = r.target;\n r.target = r.source;\n r.source = dosedo;\n r.relationType = \"narrows\";\n }\n if (EcIdentityManager.default.ids.length > 0) {\n r.addOwner(EcIdentityManager.default.ids[0].ppk.toPk());\n }\n if (framework.owner && framework.owner.length > 0) {\n for (var j = 0; j < framework.owner.length; j++) {\n var owner = framework.owner[j];\n r.addOwner(EcPk.fromPem(owner));\n }\n }\n if (framework.reader && framework.reader.length > 0) {\n for (var j = 0; j < framework.reader.length; j++) {\n var reader = framework.reader[j];\n r.addReader(EcPk.fromPem(reader));\n }\n }\n if (this.$store.state.editor.private === true) {\n r = await EcEncryptedValue.toEncryptedValue(r);\n }\n await new Promise((res, rej) => {\n window.repo.saveTo(r, res, rej);\n });\n if (thing.type === 'Concept') {\n if (framework.relation == null) {\n framework.relation = [];\n }\n let isNew = true;\n let idx = 0;\n while (isNew && idx < framework.relation.length) {\n if (EcRemoteLinkedData.trimVersionFromUrl(framework.relation[idx]).equals(r.id)) {\n isNew = false;\n }\n idx++;\n }\n if (isNew) {\n framework.relation.push(r.id);\n }\n } else {\n framework.addRelation(r.id);\n }\n }\n edits.push({operation: \"update\", id: framework.shortId(), fieldChanged: [\"relation\"], initialValue: [initialRelations], changedValue: [framework.relation]});\n this.$store.commit('editor/addEditsToUndo', edits);\n this.$store.commit('editor/framework', framework);\n if (this.$store.state.editor.private === true && EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n window.repo.saveTo(framework, resolve, reject);\n });\n },\n addRelationAsCompetencyField: async function(targets, thing, relationType, allowSave) {\n return new Promise(async(resolve, reject) => {\n var initialValue = thing[relationType] ? thing[relationType].slice() : null;\n for (var i = 0; i < targets.length; i++) {\n if (thing[relationType] == null) {\n thing[relationType] = [];\n }\n thing[relationType].push(targets[i]);\n }\n this.$store.commit('editor/addEditsToUndo', [{operation: \"update\", id: thing.shortId(), fieldChanged: [relationType], initialValue: [initialValue], changedValue: [thing[relationType]]}]);\n thing[\"schema:dateModified\"] = new Date().toISOString();\n if (this.$store.state.editor.private === true) {\n if (EcEncryptedValue.encryptOnSaveMap[thing.id] !== true) {\n thing = await EcEncryptedValue.toEncryptedValue(thing);\n }\n }\n window.repo.saveTo(thing, resolve, reject);\n });\n },\n removeRelationFromFramework: async function(source, property, target) {\n return new Promise((resolve, reject) => {\n var me = this;\n var initialRelations = this.framework.relation ? this.framework.relation.slice() : null;\n var edits = [];\n new EcAsyncHelper().each(this.framework.relation, function(relation, callback) {\n EcAlignment.get(relation, function(r) {\n if (property === \"broadens\") {\n if (r.target === source && r.source === target && r.relationType === \"narrows\") {\n me.framework.removeRelation(r.shortId());\n edits.push({operation: \"delete\", obj: r});\n me.conditionalDelete(r.shortId());\n callback();\n } else {\n callback();\n }\n } else if (r.source === source && r.target === target && r.relationType === property) {\n me.framework.removeRelation(r.shortId());\n edits.push({operation: \"delete\", obj: r});\n me.conditionalDelete(r.shortId());\n callback();\n } else {\n callback();\n }\n }, callback);\n }, async function() {\n var framework = me.framework;\n edits.push({operation: \"update\", id: framework.shortId(), fieldChanged: [\"relation\"], initialValue: [initialRelations], changedValue: [framework.relation]});\n me.$store.commit('editor/framework', framework);\n me.$store.commit('editor/addEditsToUndo', edits);\n if (me.$store.state.editor.private === true && EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n window.repo.saveTo(framework, resolve, reject);\n });\n });\n },\n ceasnRegistryUriTransform: function(uri) {\n var endpoint = null;\n if (this.$store.getters['editor/queryParams'] && (this.$store.getters['editor/queryParams'].newObjectEndpoint)) {\n endpoint = this.queryParams.newObjectEndpoint;\n }\n if (endpoint == null) {\n return uri;\n }\n if (uri.startsWith(endpoint)) {\n return uri;\n }\n var ctid = this.getCTID(uri);\n if (endpoint.indexOf(\"ce-\") !== -1) {\n ctid = ctid.substring(3);\n }\n return endpoint + ctid;\n },\n getCTID: function(uri) {\n var uuid = null;\n var parts = EcRemoteLinkedData.trimVersionFromUrl(uri).split(\"/\");\n uuid = parts[parts.length - 1];\n uri = EcRemoteLinkedData.trimVersionFromUrl(uri);\n if (!uuid.matches(\"^(ce-)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")) {\n uuid = new UUID(3, \"nil\", uri).format();\n }\n if (uuid.indexOf(\"ce-\") === -1) {\n uuid = \"ce-\" + uuid;\n }\n return uuid;\n },\n canViewCommentsCurrentFramework: function() {\n // TODO expand on this\n let lop = this.$store.state.user.loggedOnPerson;\n if (lop && lop.id && lop.id !== '') return true;\n else return false;\n },\n canAddCommentsCurrentFramework: function() {\n // TODO expand on this\n let lop = this.$store.state.user.loggedOnPerson;\n if (lop && lop.id && lop.id !== '') return true;\n else return false;\n },\n toPrettyDateString: function(dateInMilliseconds) {\n try {\n let d = new Date(dateInMilliseconds);\n return dateFormat(d, \"mm/dd/yy, h:MM:ss TT\");\n } catch (err) {\n return 'unknown';\n }\n }\n }\n};","/* (ignored) */","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///crypto (ignored)?680d","webpack:///buffer (ignored)?3b56","webpack:///buffer (ignored)?9f36","webpack:///./util.inspect (ignored)","webpack:///rdf-canonize-native (ignored)","webpack:///got (ignored)","webpack:///./src/components/modals/DynamicModal.vue","webpack:///src/components/modals/DynamicModal.vue","webpack:///./src/components/modals/DynamicModal.vue?2a07","webpack:///./src/components/modals/DynamicModal.vue?da8f","webpack:///./src/App.vue","webpack:///./src/App.vue?11bf","webpack:///./src/App.vue?315a","webpack:///util (ignored)?9bcf","webpack:///./src/router.js","webpack:///./src/store/modules/editor.js","webpack:///./src/store/modules/app.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/crosswalk.js","webpack:///./src/store/modules/environment.js","webpack:///./src/store/modules/configuration.js","webpack:///./src/store/modules/featuresEnabled.js","webpack:///./src/store/index.js","webpack:///util (ignored)?6457","webpack:///./src/components/modals/DynamicModal.vue?79f9","webpack:///./src/scss/theme.scss?d965","webpack:///./src/main.js","webpack:///./src/App.vue?c0f3","webpack:///buffer (ignored)","webpack:///./src/components/modals/DynamicModal.vue?fef9","webpack:///crypto (ignored)","webpack:///util (ignored)","webpack:///src/App.vue","webpack:///./src/store/modules/lode.js","webpack:///./src/mixins/common.js","webpack:///util (ignored)?1ada","webpack:///./src/App.vue?a81e","webpack:///./src/scss/styles.scss?e7a7"],"names":["render","_vm","_c","_self","dynamicModal","tag","attrs","title","dynamicModalContent","on","createDirectory","$event","$emit","createAnotherDirectory","close","cancel","staticRenderFns","name","props","type","default","String","color","components","Share","MultiEdit","SearchModal","AddComment","DeleteCommentConfirm","DeleteDirectoryConfirm","SupportedImportDetails","Single","AddDirectory","DeleteConfigurationConfirm","FrameworkConfiguration","DeleteCompetencyConfirm","DeleteFrameworkConfirm","DeleteLevelConfirm","DeleteConceptConfirm","DeleteConceptSchemeConfirm","RemoveCompetencyConfirm","ExportOptionsModal","RequiredPropertyModal","DuplicateImport","ImportError","ShareAssertions","LogoutSuccess","MessageOfTheDay","data","computed","showModal","$store","getters","component","watch","class","editorClass","bannerMessage","staticClass","style","bannerStyle","_v","_s","_e","saveDirectory","saveDirectoryAndAddAnother","showSideNav","showRightAside","createNewFramework","createNewConceptScheme","createNewProgressionModel","createNewCollection","Vue","use","Router","base","process","scrollBehavior","to","from","savedPosition","hash","selector","offset","x","y","routes","path","_default","sidebar","topbar","alias","Vuex","state","framework","organization","selectedCompetency","queryParams","defaultLanguage","webSocketBackoff","selectCompetencyRelation","selectingCompetencies","private","newCompetency","newFramework","t3Profile","changedObject","configuration","commonPathIframe","iframeCompetencyPathInterframework","iframeConceptPath","addCommentAboutId","addCommentType","commentToEdit","commentToReply","frameworkCommentDataLoaded","frameworkCommentList","frameworkCommentPersonMap","commentsToDelete","commentScrollTo","editsToUndo","lastEditToUndo","recomputeHierarchy","recomputePrecedence","recomputePrecedenceAfterReorder","selectedCompetenciesAsProperties","refreshLevels","refreshAlignments","refreshProperties","conceptMode","collectionMode","progressionMode","cutId","copyId","paste","cutOrCopyContainerId","nodeInFocus","relations","setPropertyLevel","addAnother","itemToDelete","itemToRemove","itemToExport","manageAssertions","assertions","badgePk","me","subject","people","firstSearchProcessing","searchingAssertions","mutations","f","comp","params","lang","webSocketBackoffIncrease","_private","bool","r","id","config","val","setAddCommentAboutId","setAddCommentType","setCommentToEdit","setCommentToReply","setCommentsToDelete","clearFrameworkCommentData","setFrameworkCommentDataLoaded","setFrameworkCommentList","setFrameworkCommentPersonMap","setCommentScrollTo","addEditsToUndo","edits","push","setLastEditToUndo","edit","boolean","comps","obj","level","setItemToDelete","setItemToRemove","setItemToExport","setManageAssertions","setAssertions","removeAssertion","EcArray","setRemove","removeAssertionAtIndex","splice","addAssertion","setAdd","setBadgePk","setMe","setSubject","setPeople","setFirstSearchProcessing","setSearchingAssertions","actions","getDirectoryChildren","instance","directory","children","frameworks","apply","_toConsumableArray","resources","directories","context","commit","pop","getThing","payload","Promise","resolve","reject","url","EcRemote","urlAppend","server","service","upgradeHttpToHttps","fetch","headers","then","resp","success","catch","err","failure","searchForAssertions","doSearch","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","start","count","wrap","_callee2$","_context2","prev","next","abrupt","EcAssertion","search","window","repo","_ref2","_callee","results","_callee$","_context","length","stop","_x3","arguments","size","_x","_x2","eah","EcAsyncHelper","each","assertion","callback","assertionDateDecrypted","getAssertionDateAsync","date","appError","computeBecause","evidences","explanations","e","evidenceString","eoriginal","startsWith","JSON","parse","EcObject","isObject","verb","display","en","object","definition","result","Math","round","score","scaled","interactionType","text","original","failureFunc","EcRepository","get","isAny","ChooseAction","getTypes","creativeWork","sort","a","b","getMe","getSubject","namespaced","sideNavEnabled","rightAsideContent","rightAsideObject","canViewComments","canAddComments","pluginLastUpdate","pluginToLaunch","pluginToLaunchLastUpdate","showToolBar","commentsEnabled","versionsEnabled","draggingEnabled","isDragging","draggable","contentSection","searchTerm","quickFilters","applySearchTo","sortResults","refreshSearch","searchFrameworksInCompetencySearch","modal","objForShareModal","directoryList","selectedDirectory","searchingInDirectory","editDirectory","import","files","transition","status","fileType","firstImport","Boolean","errors","feedback","duplicates","skip","serverUrl","frameworkName","frameworkDescription","importCsv","nameColumn","descriptionColumn","scopeColumn","idColumn","sourceColumn","relationColumn","targetColumn","importText","csvColumns","csvRelationColumns","csvRelationFile","importModalParams","allowCancel","banner","message","background","motd","curatedPlugins","closeSideNav","closeRightAside","_rightAsideObject","encryptedType","t0","EcEncryptedValue","fromEncryptedValue","t1","sent","copyFrom","call","closeModal","value","importFiles","setCanViewComments","setCanAddComments","clearImportFiles","resetImport","descriptionCcolumn","importTransition","importFileType","importType","addImportError","clearImportErrors","importStatus","importAllowCancel","importFeedback","importDuplicates","importSkip","importFramework","importFrameworkName","importFrameworkNameColumn","frameworkNameColumn","importFrameworkScopeColumn","frameworkScopeColumn","importFrameworkIdColumn","frameworkIdColumn","importFrameworkDescription","importServerUrl","importUrl","importNameColumn","importDescriptionColumn","importScopeColumn","importSourceColumn","importTargetColumn","importRelationColumn","importIdColumn","singleQuickFilter","i","findIndex","filter","checked","clearSearchFilters","_i","_i2","selectDirectory","list","setBanner","setMotd","setCuratedPlugins","clearImport","refreshDirectories","directoryIds","paramObj","EcDirectory","dirs","canEditAny","EcIdentityManager","getMyPks","has","importErrors","filterByOwnedByMe","find","Array","isArray","filterByNotOwnedByMe","filterByConfigMatchDefault","bannerColor","bannerBackground","motdTitle","motdMessage","loggedOnPerson","repoInit","ssoLogin","ssoLogout","ssoPublicKey","lastLogin","personObj","ids","repositorySsoOptions","step","frameworkSource","frameworkSourceRelationships","frameworkTarget","frameworkTargetRelationships","relevantExistingAlignmentsMap","relevantExistingAlignmentsMapLastUpdate","alignedCompetenciesList","workingAlignmentsMap","source","targets","initialTargets","removedTargets","changed","alignmentsToSave","alignmentsToDelete","sourceState","targetState","targetNodesToHighlight","enabledRelationshipTypes","enabledRelationshipTypesLastUpdate","workingAlignmentsSource","c","workingAlignmentsTargets","workingAlignmentsType","s","t","populateAlignedCompetenciesList","alignedCompetencies","sourceComps","Object","keys","_sourceComps","sc","alignTypes","_alignTypes","scAt","targetIds","_i3","_targetIds","ti","populateWorkingAlignmentMap","sourceTypeAlignMap","_i4","_targetIds2","resetFrameworkSourceRelationships","resetFrameworkTargetRelationships","resetCrosswalkFrameworks","resetCrosswalkAlignmentsAndState","resetCrosswalk","resetWorkingAlignmentsMap","addWorkingAlignmentsTarget","remTargets","filteredRemovedTargets","shouldSetToChanged","_iterator","_createForOfIteratorHelper","_step","n","done","includes","removeWorkingAlignmentsTarget","filtered","target","_iterator2","_step2","removeAlignmentFromRelevantAlignmentsMap","alignProps","ream","addAlignmentToRelevantAlignmentsMap","ecaObj","relationType","removeAlignmentFromAlignmentsToSave","newAts","_iterator3","_step3","removeAlignmentFromAlignmentsToDelete","newAtd","_iterator4","_step4","appendAlignmentsToDelete","alignment","appendAlignmentsToSave","cassApiLocation","CONFIG_SEARCH_SIZE","DEFAULT_CONFIGURATION_TYPE","DEFAULT_CONFIGURATION_CONTEXT","LANG_STRING_RANGE","DEFAULT_HEADING","LEVEL_SEARCH_SIZE","PERSON_SEARCH_SIZE","DEFAULT_CUSTOM_PROPERTY_CONTEXT","DEFAULT_CUSTOM_PROPERTY_RANGE","defaultBrowserConfig","defaultBrowserConfigName","localDefaultBrowserConfig","configBusy","configList","configView","currentConfig","showConfirmDeleteConfigModal","showMustBeLoggedInModal","showBrowserConfigSetModal","configToDelete","availableConcepts","setConfigToDelete","setShowMustBeLoggedInModal","setShowBrowserConfigSetModal","setShowConfirmDeleteConfigModal","setCurrentConfig","setConfigView","setConfigList","setConfigBusy","setDefaultBrowserConfig","setDefaultBrowserConfigName","setLocalDefaultBrowserConfig","setAvailableConcepts","setAvailableTypes","availableTypes","GROUP_SEARCH_SIZE","crosswalkEnabled","userManagementEnabled","configurationsEnabled","searchByOwnerNameEnabled","pluginsEnabled","loginEnabled","legacyLoginEnabled","apiLoginEnabled","shareEnabled","shareLink","ownedByMe","Store","modules","lode","editor","app","user","crosswalk","environment","featuresEnabled","VueScrollTo","require","_global","global","originalFetch","PENDING_REQUESTS","MAX_REQUESTS_COUNT","INTERVAL_MS","_len","args","_key","resource","response","_args","setTimeout","_global2","values","max","finish","UUID","options","failedColor","thickness","speed","opacity","termination","autoRevert","location","inverse","VueProgressBar","Clipboard","container","duration","easing","force","cancelable","onStart","onDone","onCancel","InfiniteLoading","VueResource","VueObserveVisibility","AsyncComputed","directive","bind","element","binding","vnode","clickOutsideEvent","event","contains","expression","document","body","addEventListener","unbind","removeEventListener","caching","cachingL2","productionTip","warnHandler","msg","vm","trace","appLog","hashSplit","split","o","paramString","parts","decodeURIComponent","replace","router","store","h","App","$mount","mixins","common","DynamicModal","navBarActive","itemsSaving","showNav","linkedPerson","addAnotherDirectory","appVersion","version","$router","beforeDestroy","cappend","messageListener","methods","initializeApp","_this","origin","VUE_APP_SELECTEDSERVER","$route","query","stringify","key","endsWith","concepts","ceasnDataFields","show","selectedServer","init","readContacts","readIdentities","findLinkedPersonForIdentity","defaultPlugins","plugins","loginInfo","pers","ppk","ident","per","fetchServerAdminKeys","ssoViaP1","corsOrigins","EcPerson","getByPk","toPk","displayName","getName","ssoAdditionalPublicKeys","EcPpkFacade","fromPem","EcIdentity","addIdentity","dispatch","openWebSocket","attachEvent","loadIdentity","frameworkId","EcConceptScheme","canViewCommentsCurrentFramework","canAddCommentsCurrentFramework","EcFramework","directoryId","action","createNew","frameworksPage","collections","parent","oHead","getElementsByTagName","arrStyleSheets","tagName","toLowerCase","attributes","inherit","appendChild","cloneNode","importParentStyles","css","ss","createElement","rel","href","types","_loop","_types","schemata","undefined","indexOf","index","substring","pathname","getExpectingObject","expanded","jsonld","expand","getExpectingString","EcPk","onSidebarEvent","findLinkedPersonPersonSearchSuccess","findLinkedPersonPersonSearchFailure","ecRemoteLda","matchingPersonRecordFound","ecrld","ep","getGuid","equals","fingerprint","addGroupIdentities","searchRepositoryForGroupsSuccess","ecoa","linkedPersonShortId","shortId","eco","employee","addGroupIdentity","searchRepositoryForGroupsFailure","EcOrganization","_addGroupIdentity","_callee3","group","groupPpkSet","gPpk","grpIdent","_callee3$","_context3","getOrgKeys","addIdentityQuietly","dir","generateId","addOwner","Date","toISOString","save","$nextTick","currentRoute","selectedIds","selected","competencies","highlightCompetency","select","connection","webSocketOverride","WebSocket","onopen","onerror","error","onclose","evt","_ref3","_callee4","wut","com","_callee4$","_context4","getAssertionDate","ConceptScheme","isA","getFullType","spitEvent","t2","t3","Concept","EcConcept","t4","t5","EcCompetency","t6","t7","EcLevel","t8","t9","_x4","onmessage","cache","EcRemoteLinkedData","trimVersionFromUrl","veryShortId","EcCrypto","md5","precache","_createNewFramework","_callee5","optionalDirectory","saveFramework","_callee5$","_context5","setDefaultLanguage","newObjectEndpoint","generateShortId","owner","reader","toEncryptedValue","saveTo","_x5","_createNewCollection","_callee6","_callee6$","_context6","subType","_createNewConceptScheme","_callee7","_callee7$","_context7","_createNewProgressionModel","_callee8","_callee8$","_context8","identity","EcPpk","generateKeyAsync","p1","onIdentityChanged","saveIdentities","inIframe","fun","postMessage","_messageListener","_callee9","d","v","link","fid","guid","_callee9$","_context9","template","removeNewlines","competency","conceptScheme","concept","encryptOnSaveMap","schema","shouldTryUrl","format","_x6","entity","toPem","attachUrlProperties","_attachUrlProperties","_callee10","thing","_callee10$","_context10","_x7","copyOrLink","choice","copyCompetencies","appendCompetencies","_copyCompetencies","_callee11","copyDict","j","child","_callee11$","_context11","addReader","Task","asyncImmediate","addCompetency","afterCopy","addLevel","EcAlignment","addRelation","Relation","NARROWS","_x8","_afterCopy","_callee12","_callee12$","_context12","_appendCompetencies","_callee14","newLink","_callee14$","_context14","_callee13","_callee13$","_context13","_x9","_x10","parentStyleSheets","styleSheets","cssString","cssRules","ownerNode","countJ","cssText","innerHTML","ex","self","top","_objectSpread","isLoggedIn","loggedInPerson","currentPathIsLogin","mapState","mounted","navigationTo","isSavingProperty","isSavingThing","isAddingProperty","addingProperty","addingValues","addingRange","addingChecked","removeAddingValueAtIndex","schemataLookup","rawSchemata","schemaFallback","objectModel","competencySearchModalOpen","numPropertyComponentsVisible","searchType","includeRelations","scheme","domainType","om","setIsSavingProperty","setIsSavingThing","setIsAddingProperty","setAddingProperty","setAddingValues","newValues","forEach","newValue","trimUrl","addToAddingValues","setAddingRange","setAddingChecked","setSchemata","setSchemataLookup","setEmptySchemataLookup","setObjectModel","incrementNumPropertyComponents","thingId","decrementNumPropertyComponents","trimmed","slice","documentLoader","xmlhttp","originalUrl","ending","contextUrl","documentUrl","XMLHttpRequest","onreadystatechange","readyState","responseText","lastIndexOf","open","setRequestHeader","send","conceptCtids","conceptRegistryUrls","ctids","getCTID","registryURLs","ceasnRegistryUriTransform","item","isAdmin","adminKeys","userIds","userId","userKey","adminKey","getConceptCtids","_getConceptCtids","subCtids","ary","getConceptRegistryUrls","_getConceptRegistryUrls","subURLs","page","Thing","getDisplayStringFrom","compName","selectedFramework","selectedFrameworkObject","toJson","selectedCompetencyObject","selectedFrameworkName","selectedCompetencyName","visiblePage","selectedFrameworkCtid","matches","selectedCompetencyCtid","navigator","language","userLanguage","xhr","httpStatus","xhrx","onload","timeout","httpGet","resolveNameFromUrl","langs","conditionalDelete","depth","deleteRegistered","selectButton","_selectButton","selectedArray","relation","currentFramework","_success","selectVerbose","selectExport","selectRelations","_addLevel","optionalLevelUrlOrName","initialLevels","operation","fieldChanged","initialValue","changedValue","saveCheckedLevels","_saveCheckedLevels","checkedOptions","allOptions","competencyId","frameworkChanged","initialComp","levelChanged","_levelChanged","_each","_saveFramework","removeLevelFromFramework","_removeLevelFromFramework","levelId","removeLevel","addRelationsToFramework","_addRelationsToFramework","property","addAlignments","_x11","_x12","_x13","_addAlignments","allowSave","urlProperties","addConceptAlignments","addRelationAsCompetencyField","_ref5","initialRelations","dosedo","isNew","idx","res","rej","_x18","_x19","_x14","_x15","_x16","_x17","_addRelationAsCompetencyField","_callee16","_this2","_callee16$","_context16","_ref6","_callee15","_callee15$","_context15","_x24","_x25","_x20","_x21","_x22","_x23","removeRelationFromFramework","_removeRelationFromFramework","_callee18","_this3","_callee18$","_context18","removeRelation","_callee17","_callee17$","_context17","_x26","_x27","_x28","uri","endpoint","ctid","uuid","lop","toPrettyDateString","dateInMilliseconds","dateFormat"],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,4CAA4C,gjBAAgjB,6BAA6B,m5DAAm5D;QAC5gF;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,2BAA2B,gjBAAgjB,6BAA6B,m5DAAm5D;QAC3/E;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1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","file":"js/app.20343a4f.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\",\"concepts\":\"concepts\",\"organizations\":\"organizations\",\"directory\":\"directory\",\"crosswalk\":\"crosswalk\",\"import\":\"import\",\"organization\":\"organization\",\"framework\":\"framework\",\"conceptScheme\":\"conceptScheme\",\"progressionModel\":\"progressionModel\",\"configurationEditor\":\"configurationEditor\",\"forbidden\":\"forbidden\",\"internalError\":\"internalError\",\"login\":\"login\",\"pluginContainer\":\"pluginContainer\",\"pluginManager\":\"pluginManager\",\"sidenav\":\"sidenav\",\"timeline\":\"timeline\",\"topbar\":\"topbar\",\"userGroupEditor\":\"userGroupEditor\",\"welcome\":\"welcome\"}[chunkId]||chunkId) + \".\" + {\"about\":\"ef8738c4\",\"chunk-08264f73\":\"7ccce316\",\"chunk-0e513d16\":\"240e87ed\",\"chunk-22f5d1ea\":\"b5c1d095\",\"chunk-28a7ff35\":\"701be87b\",\"chunk-2d0a4fe9\":\"f4fef23a\",\"chunk-2d0d5fe2\":\"a26ed909\",\"chunk-576b8942\":\"15e5c12b\",\"chunk-2d22bdc1\":\"7ea191cc\",\"concepts\":\"240632fa\",\"organizations\":\"9fdebcd6\",\"directory\":\"cc229a87\",\"chunk-6a6fd63e\":\"ab14187e\",\"chunk-19b164da\":\"18b36d35\",\"chunk-5ab3ec85\":\"35761004\",\"chunk-73f15c61\":\"2d6ea16a\",\"crosswalk\":\"151ac712\",\"import\":\"a6f27069\",\"organization\":\"d361a07d\",\"chunk-2d21ecda\":\"9a480e8e\",\"framework\":\"8b159392\",\"conceptScheme\":\"e96901d0\",\"progressionModel\":\"7726a809\",\"chunk-32471621\":\"5a560fd8\",\"chunk-36a8ba44\":\"ddf0b5a7\",\"chunk-3c39b703\":\"fd910002\",\"chunk-43880ac8\":\"d18c2ef9\",\"chunk-4a268576\":\"13e047c0\",\"chunk-51c654a1\":\"d93ee490\",\"chunk-61b7344a\":\"ef21d64e\",\"chunk-2d0b2ce8\":\"0b4b1205\",\"configurationEditor\":\"08c04342\",\"chunk-661fb5db\":\"e91456a3\",\"chunk-693a040c\":\"1a3c8758\",\"chunk-6e63f303\":\"3d2ebdd4\",\"chunk-719eeaef\":\"e27318bc\",\"chunk-789a5742\":\"a53f6621\",\"chunk-af56af32\":\"baa05700\",\"chunk-b37cb348\":\"764b4f62\",\"chunk-b787821e\":\"c79c046d\",\"chunk-db457718\":\"36d97c82\",\"chunk-de13755a\":\"5b86bc75\",\"forbidden\":\"e7fdd374\",\"internalError\":\"609b3b0f\",\"login\":\"d52add47\",\"pluginContainer\":\"991ae7a7\",\"pluginManager\":\"22bb5ae3\",\"sidenav\":\"890d6761\",\"timeline\":\"7ea89c40\",\"topbar\":\"87ee8126\",\"userGroupEditor\":\"da480c84\",\"welcome\":\"724fd4fc\",\"chunk-2d0cbec1\":\"7adbf805\",\"chunk-5f3758f4\":\"6dcc2bba\",\"chunk-25a2af2a\":\"253e2512\",\"chunk-51c69438\":\"57f40452\",\"chunk-dc2b4b7e\":\"e72595c1\",\"chunk-4f51c21e\":\"c2fde313\",\"chunk-74a95bb3\":\"7742bf01\",\"chunk-4a5f46a6\":\"cb0fd2a0\",\"chunk-4cf587c0\":\"5b2a1a16\",\"chunk-0e6d8a6f\":\"669a1eff\",\"chunk-6b291276\":\"14f7fda8\",\"chunk-0a05d3b6\":\"b189852a\",\"chunk-2d0ddf90\":\"7a2ff437\",\"chunk-2d0dab46\":\"23fb2f77\",\"chunk-c5459254\":\"75340121\",\"chunk-67b76a7b\":\"0125aedb\",\"chunk-4f8e6938\":\"ab15ba4c\",\"chunk-9dddac98\":\"e95ec9cb\",\"chunk-2d0daac9\":\"021370c5\",\"chunk-2d21eb37\":\"6cb9f804\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-08264f73\":1,\"chunk-0e513d16\":1,\"chunk-22f5d1ea\":1,\"chunk-28a7ff35\":1,\"chunk-576b8942\":1,\"concepts\":1,\"organizations\":1,\"directory\":1,\"chunk-6a6fd63e\":1,\"chunk-19b164da\":1,\"chunk-5ab3ec85\":1,\"chunk-73f15c61\":1,\"crosswalk\":1,\"import\":1,\"organization\":1,\"framework\":1,\"conceptScheme\":1,\"progressionModel\":1,\"chunk-32471621\":1,\"chunk-36a8ba44\":1,\"chunk-3c39b703\":1,\"chunk-43880ac8\":1,\"chunk-4a268576\":1,\"chunk-51c654a1\":1,\"chunk-61b7344a\":1,\"configurationEditor\":1,\"chunk-661fb5db\":1,\"chunk-693a040c\":1,\"chunk-6e63f303\":1,\"chunk-719eeaef\":1,\"chunk-789a5742\":1,\"chunk-af56af32\":1,\"chunk-b37cb348\":1,\"chunk-b787821e\":1,\"chunk-db457718\":1,\"chunk-de13755a\":1,\"forbidden\":1,\"internalError\":1,\"login\":1,\"pluginContainer\":1,\"pluginManager\":1,\"sidenav\":1,\"timeline\":1,\"userGroupEditor\":1,\"chunk-5f3758f4\":1,\"chunk-25a2af2a\":1,\"chunk-51c69438\":1,\"chunk-dc2b4b7e\":1,\"chunk-4f51c21e\":1,\"chunk-4cf587c0\":1,\"chunk-0e6d8a6f\":1,\"chunk-0a05d3b6\":1,\"chunk-c5459254\":1,\"chunk-67b76a7b\":1,\"chunk-4f8e6938\":1,\"chunk-9dddac98\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\",\"concepts\":\"concepts\",\"organizations\":\"organizations\",\"directory\":\"directory\",\"crosswalk\":\"crosswalk\",\"import\":\"import\",\"organization\":\"organization\",\"framework\":\"framework\",\"conceptScheme\":\"conceptScheme\",\"progressionModel\":\"progressionModel\",\"configurationEditor\":\"configurationEditor\",\"forbidden\":\"forbidden\",\"internalError\":\"internalError\",\"login\":\"login\",\"pluginContainer\":\"pluginContainer\",\"pluginManager\":\"pluginManager\",\"sidenav\":\"sidenav\",\"timeline\":\"timeline\",\"topbar\":\"topbar\",\"userGroupEditor\":\"userGroupEditor\",\"welcome\":\"welcome\"}[chunkId]||chunkId) + \".\" + {\"about\":\"31d6cfe0\",\"chunk-08264f73\":\"60471a70\",\"chunk-0e513d16\":\"6fe35a3d\",\"chunk-22f5d1ea\":\"60471a70\",\"chunk-28a7ff35\":\"60471a70\",\"chunk-2d0a4fe9\":\"31d6cfe0\",\"chunk-2d0d5fe2\":\"31d6cfe0\",\"chunk-576b8942\":\"cebd8586\",\"chunk-2d22bdc1\":\"31d6cfe0\",\"concepts\":\"223c9419\",\"organizations\":\"1d9c1cec\",\"directory\":\"70098fbc\",\"chunk-6a6fd63e\":\"d8e69eab\",\"chunk-19b164da\":\"2c043d12\",\"chunk-5ab3ec85\":\"d652b43a\",\"chunk-73f15c61\":\"bb359785\",\"crosswalk\":\"b12a891a\",\"import\":\"91080966\",\"organization\":\"2f85a467\",\"chunk-2d21ecda\":\"31d6cfe0\",\"framework\":\"68516d6d\",\"conceptScheme\":\"75a8af1c\",\"progressionModel\":\"75a8af1c\",\"chunk-32471621\":\"60471a70\",\"chunk-36a8ba44\":\"60471a70\",\"chunk-3c39b703\":\"60471a70\",\"chunk-43880ac8\":\"60471a70\",\"chunk-4a268576\":\"60471a70\",\"chunk-51c654a1\":\"daa4e784\",\"chunk-61b7344a\":\"d0a47e88\",\"chunk-2d0b2ce8\":\"31d6cfe0\",\"configurationEditor\":\"aa42073b\",\"chunk-661fb5db\":\"60471a70\",\"chunk-693a040c\":\"60471a70\",\"chunk-6e63f303\":\"60471a70\",\"chunk-719eeaef\":\"369d5d3a\",\"chunk-789a5742\":\"60471a70\",\"chunk-af56af32\":\"60471a70\",\"chunk-b37cb348\":\"73ccae3d\",\"chunk-b787821e\":\"60471a70\",\"chunk-db457718\":\"60471a70\",\"chunk-de13755a\":\"73ccae3d\",\"forbidden\":\"1b0a0109\",\"internalError\":\"7f0e233f\",\"login\":\"be292f08\",\"pluginContainer\":\"ae42be31\",\"pluginManager\":\"7dbcc073\",\"sidenav\":\"e0b4a456\",\"timeline\":\"4070750e\",\"topbar\":\"31d6cfe0\",\"userGroupEditor\":\"83fefc67\",\"welcome\":\"31d6cfe0\",\"chunk-2d0cbec1\":\"31d6cfe0\",\"chunk-5f3758f4\":\"a2bf2d06\",\"chunk-25a2af2a\":\"60471a70\",\"chunk-51c69438\":\"09db533f\",\"chunk-dc2b4b7e\":\"60471a70\",\"chunk-4f51c21e\":\"a478a2a2\",\"chunk-74a95bb3\":\"31d6cfe0\",\"chunk-4a5f46a6\":\"31d6cfe0\",\"chunk-4cf587c0\":\"c8484769\",\"chunk-0e6d8a6f\":\"cc85466d\",\"chunk-6b291276\":\"31d6cfe0\",\"chunk-0a05d3b6\":\"4b09ece7\",\"chunk-2d0ddf90\":\"31d6cfe0\",\"chunk-2d0dab46\":\"31d6cfe0\",\"chunk-c5459254\":\"6bbc8dd3\",\"chunk-67b76a7b\":\"67586f64\",\"chunk-4f8e6938\":\"c8484769\",\"chunk-9dddac98\":\"c8484769\",\"chunk-2d0daac9\":\"31d6cfe0\",\"chunk-2d21eb37\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c(_vm.dynamicModal,{tag:\"Component\",attrs:{\"title\":_vm.title,\"view\":\"modal\",\"content\":_vm.dynamicModalContent},on:{\"create-directory\":function($event){return _vm.$emit('create-directory', $event)},\"create-another-directory\":function($event){return _vm.$emit('create-another-directory', $event)},\"close\":function($event){return _vm.$emit('app/closeModal')},\"cancel\":function($event){return _vm.$emit('app/closeModal')}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DynamicModal.vue?vue&type=template&id=704681ec\"\nimport script from \"./DynamicModal.vue?vue&type=script&lang=js\"\nexport * from \"./DynamicModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./DynamicModal.vue?vue&type=style&index=0&id=704681ec&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.editorClass,attrs:{\"id\":\"app\"}},[(_vm.bannerMessage)?_c('div',{staticClass:\"banner\",style:(_vm.bannerStyle)},[_c('span',[_vm._v(_vm._s(_vm.bannerMessage))])]):_vm._e(),_c('DynamicModal',{on:{\"create-directory\":_vm.saveDirectory,\"create-another-directory\":_vm.saveDirectoryAndAddAnother}}),_c('router-view',{class:[{ 'clear-side-bar': _vm.showSideNav}, { 'clear-narrow-side-bar': !_vm.showSideNav}, {'clear-right-aside': _vm.showRightAside}],on:{\"create-new-framework\":_vm.createNewFramework,\"create-new-concept-scheme\":_vm.createNewConceptScheme,\"create-new-progression-model\":_vm.createNewProgressionModel,\"create-new-collection\":_vm.createNewCollection}}),_c('router-view',{attrs:{\"showSideNav\":_vm.showSideNav,\"name\":\"sidebar\"},on:{\"create-new-framework\":_vm.createNewFramework,\"create-new-concept-scheme\":_vm.createNewConceptScheme,\"create-new-progression-model\":_vm.createNewProgressionModel,\"create-new-collection\":_vm.createNewCollection}}),_c('vue-progress-bar'),(_vm.bannerMessage)?_c('div',{staticClass:\"banner banner-bot\",style:(_vm.bannerStyle)},[_c('span',[_vm._v(_vm._s(_vm.bannerMessage))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=414a336e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=414a336e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* (ignored) */","import Vue from 'vue';\nimport Router from 'vue-router';\n\n\nVue.use(Router);\nexport default new Router({\n base: process.env.BASE_URL,\n scrollBehavior(to, from, savedPosition) {\n if (to.hash) {\n return {\n selector: to.hash,\n offset: {x: 0, y: -100}\n };\n }\n },\n routes: [\n {\n path: '/',\n name: 'welcome',\n components: {\n default: () => import(/* webpackChunkName: \"welcome\" */ './views/Welcome.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n },\n alias: '/cass-editor/'\n },\n {\n path: '/frameworks',\n name: 'frameworks',\n components: {\n default: () => import(/* webpackChunkName: \"frameworks\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/collections',\n name: 'collections',\n components: {\n default: () => import(/* webpackChunkName: \"frameworks\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/concepts',\n name: 'concepts',\n components: {\n default: () => import(/* webpackChunkName: \"concepts\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/progressionLevels',\n name: 'progressionLevels',\n components: {\n default: () => import(/* webpackChunkName: \"progressionLevels\" */ './views/framework/Frameworks.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/login',\n name: 'login',\n component: () => import(/* webpackChunkName: \"login\" */ './views/login/Login.vue')\n },\n {\n path: '/legacyLogin',\n name: 'legacyLogin',\n component: () => import(/* webpackChunkName: \"login\" */ './views/login/LegacyLogin.vue')\n },\n {\n path: '/createAccount',\n name: 'createAccount',\n component: () => import(/* webpackChunkName: \"login\" */ './views/login/CreateAccount.vue')\n },\n {\n path: '/configuration',\n name: 'configuration',\n components: {\n default: () => import(/* webpackChunkName: \"configurationEditor\" */ './views/ConfigurationEditor'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/users',\n name: 'users',\n components: {\n default: () => import(/* webpackChunkName: \"userGroupEditor\" */ './views/usersGroups/UserGroupEditor'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n // {\n // path: '/users-and-groups',\n // name: 'users-and-groups',\n // components: {\n // default: () => import('./views/usersGroups/UsersAndGroups.vue'),\n // sidebar: () => import('./components/SideNav.vue'),\n // topbar: () => import('./components/Topbar.vue')\n // }\n // },\n {\n path: '/pluginManager',\n name: 'pluginManager',\n components: {\n default: () => import(/* webpackChunkName: \"pluginManager\" */ './views/plugins/PluginManager'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/crosswalk',\n name: 'crosswalk',\n components: {\n default: () => import(/* webpackChunkName: \"crosswalk\" */ './views/framework/Crosswalk'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/timeline',\n name: 'timeline',\n components: {\n default: () => import(/* webpackChunkName: \"timeline\" */ './views/framework/Timeline'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/about',\n name: 'about',\n components: {\n default: () => import(/* webpackChunkName: \"about\" */ './views/About.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/framework',\n name: 'framework',\n components: {\n default: () => import(/* webpackChunkName: \"framework\" */ './views/framework/Framework.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/import',\n name: 'import',\n components: {\n default: () => import(/* webpackChunkName: \"import\" */ './views/framework/Import.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/organizations',\n name: 'organizations',\n components: {\n default: () => import(/* webpackChunkName: \"organizations\" */ './views/organization/Organizations.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/organization',\n name: 'organization',\n components: {\n default: () => import(/* webpackChunkName: \"organization\" */ './views/organization/Organization.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/pluginContainer',\n name: 'pluginContainer',\n components: {\n default: () => import(/* webpackChunkName: \"pluginContainer\" */ './views/plugins/PluginContainer.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/conceptScheme',\n name: 'conceptScheme',\n components: {\n default: () => import(/* webpackChunkName: \"conceptScheme\" */ './views/conceptScheme/ConceptScheme.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/progressionModel',\n name: 'progressionModel',\n components: {\n default: () => import(/* webpackChunkName: \"progressionModel\" */ './views/progressionModel/ProgressionModel.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n },\n {\n path: '/403',\n name: 'Forbidden',\n component: () => import(/* webpackChunkName: \"forbidden\" */ './views/Forbidden.vue')\n },\n {\n path: '/500',\n name: 'InternalError',\n component: () => import(/* webpackChunkName: \"internalError\" */ './views/InternalError.vue')\n },\n {\n path: '/directory',\n name: 'directory',\n components: {\n default: () => import(/* webpackChunkName: \"directory\" */ './views/directory/Directory.vue'),\n sidebar: () => import(/* webpackChunkName: \"sidenav\" */ './components/SideNav.vue'),\n topbar: () => import(/* webpackChunkName: \"topbar\" */ './components/Topbar.vue')\n }\n }\n ]\n});\n","import Vue from 'vue';\nimport Vuex from 'vuex';\n\nVue.use(Vuex);\n\nconst state = {\n framework: null,\n organization: null,\n selectedCompetency: null,\n queryParams: {},\n defaultLanguage: null,\n webSocketBackoff: 100,\n selectCompetencyRelation: null,\n selectingCompetencies: false,\n private: false,\n newCompetency: null,\n newFramework: null,\n t3Profile: false,\n changedObject: null,\n configuration: null,\n commonPathIframe: '',\n iframeCompetencyPathInterframework: '',\n iframeConceptPath: '',\n addCommentAboutId: '',\n addCommentType: '',\n commentToEdit: {},\n commentToReply: {},\n frameworkCommentDataLoaded: false,\n frameworkCommentList: [],\n frameworkCommentPersonMap: {},\n commentsToDelete: [],\n commentScrollTo: {},\n editsToUndo: [],\n lastEditToUndo: null,\n recomputeHierarchy: false,\n recomputePrecedence: false,\n recomputePrecedenceAfterReorder: false,\n selectedCompetenciesAsProperties: null,\n refreshLevels: false,\n refreshAlignments: false,\n refreshProperties: false,\n conceptMode: false,\n collectionMode: false,\n progressionMode: false,\n cutId: null,\n copyId: null,\n paste: false,\n cutOrCopyContainerId: null,\n nodeInFocus: null,\n relations: {},\n setPropertyLevel: null,\n addAnother: false,\n itemToDelete: {},\n itemToRemove: {},\n itemToExport: {},\n manageAssertions: false,\n assertions: [],\n badgePk: null,\n me: null,\n subject: null,\n people: [],\n firstSearchProcessing: true,\n searchingAssertions: false\n};\nconst mutations = {\n framework(state, f) {\n state.framework = f;\n },\n organization(state, f) {\n state.organization = f;\n },\n selectedCompetency(state, comp) {\n state.selectedCompetency = comp;\n },\n queryParams(state, params) {\n state.queryParams = params;\n },\n defaultLanguage(state, lang) {\n state.defaultLanguage = lang;\n },\n webSocketBackoffIncrease(state) {\n state.webSocketBackoff *= 2;\n },\n private(state, bool) {\n state.private = bool;\n },\n selectCompetencyRelation(state, r) {\n state.selectCompetencyRelation = r;\n },\n selectingCompetencies(state, bool) {\n state.selectingCompetencies = bool;\n },\n newCompetency(state, id) {\n state.newCompetency = id;\n },\n newFramework(state, id) {\n state.newFramework = id;\n },\n t3Profile(state, bool) {\n state.t3Profile = bool;\n },\n changedObject(state, id) {\n state.changedObject = id;\n },\n configuration(state, config) {\n state.configuration = config;\n },\n commonPathIframe(state, val) {\n state.commonPathIframe = val;\n },\n iframeCompetencyPathInterframework(state, val) {\n state.iframeCompetencyPathInterframework = val;\n },\n iframeConceptPath(state, val) {\n state.iframeConceptPath = val;\n },\n setAddCommentAboutId(state, val) {\n state.addCommentAboutId = val;\n },\n setAddCommentType(state, val) {\n state.addCommentType = val;\n },\n setCommentToEdit(state, val) {\n state.commentToEdit = val;\n },\n setCommentToReply(state, val) {\n state.commentToReply = val;\n },\n setCommentsToDelete(state, val) {\n state.commentsToDelete = val;\n },\n clearFrameworkCommentData(state) {\n state.frameworkCommentDataLoaded = false;\n state.frameworkCommentList = [];\n state.frameworkCommentPersonMap = {};\n },\n setFrameworkCommentDataLoaded(state, val) {\n state.frameworkCommentDataLoaded = val;\n },\n setFrameworkCommentList(state, val) {\n state.frameworkCommentList = val;\n },\n setFrameworkCommentPersonMap(state, val) {\n state.frameworkCommentPersonMap = val;\n },\n setCommentScrollTo(state, val) {\n state.commentScrollTo = val;\n },\n addEditsToUndo(state, edits) {\n state.editsToUndo.push(edits);\n },\n setLastEditToUndo(state, edit) {\n state.lastEditToUndo = edit;\n },\n recomputeHierarchy(state, boolean) {\n state.recomputeHierarchy = boolean;\n },\n recomputePrecedence(state, boolean) {\n state.recomputePrecedence = boolean;\n },\n recomputePrecedenceAfterReorder(state, boolean) {\n state.recomputePrecedenceAfterReorder = boolean;\n },\n selectedCompetenciesAsProperties(state, comps) {\n state.selectedCompetenciesAsProperties = comps;\n },\n refreshLevels(state, boolean) {\n state.refreshLevels = boolean;\n },\n refreshAlignments(state, boolean) {\n state.refreshAlignments = boolean;\n },\n refreshProperties(state, boolean) {\n state.refreshProperties = boolean;\n },\n conceptMode(state, boolean) {\n if (boolean) {\n state.conceptMode = true;\n state.progressionMode = false;\n } else {\n state.conceptMode = false;\n }\n },\n collectionMode(state, boolean) {\n state.collectionMode = boolean;\n },\n progressionMode(state, boolean) {\n if (boolean) {\n state.progressionMode = true;\n state.conceptMode = false;\n } else {\n state.progressionMode = false;\n }\n },\n cutId(state, id) {\n state.cutId = id;\n },\n copyId(state, id) {\n state.copyId = id;\n },\n paste(state, id) {\n state.paste = id;\n },\n cutOrCopyContainerId(state, id) {\n state.cutOrCopyContainerId = id;\n },\n nodeInFocus(state, id) {\n state.nodeInFocus = id;\n },\n relations(state, obj) {\n state.relations = obj;\n },\n setPropertyLevel(state, level) {\n state.setPropertyLevel = level;\n },\n addAnother(state, bool) {\n state.addAnother = bool;\n },\n setItemToDelete(state, val) {\n state.itemToDelete = val;\n },\n setItemToRemove(state, val) {\n state.itemToRemove = val;\n },\n setItemToExport(state, val) {\n state.itemToExport = val;\n },\n setManageAssertions(state, val) {\n state.manageAssertions = val;\n },\n setAssertions(state, val) {\n state.assertions = val;\n },\n removeAssertion(state, val) {\n EcArray.setRemove(state.assertions, val);\n },\n removeAssertionAtIndex(state, val) {\n state.assertions.splice(val, 1);\n },\n addAssertion(state, val) {\n EcArray.setAdd(state.assertions, val);\n },\n setBadgePk(state, val) {\n state.badgePk = val;\n },\n setMe(state, val) {\n state.me = val;\n },\n setSubject(state, val) {\n state.subject = val;\n },\n setPeople(state, val) {\n state.people = val;\n },\n setFirstSearchProcessing(state, val) {\n state.firstSearchProcessing = val;\n },\n setSearchingAssertions(state, val) {\n state.searchingAssertions = val;\n }\n};\nconst actions = {\n getDirectoryChildren: function(instance, directory) {\n let children = [];\n if (directory.frameworks) {\n children.push(...directory.frameworks);\n }\n if (directory.resources) {\n children.push(...directory.resources);\n }\n if (directory.directories) {\n children.push(...directory.directories);\n }\n return children;\n },\n lastEditToUndo: function(context) {\n context.commit('setLastEditToUndo', context.state.editsToUndo.pop());\n return context.state.lastEditToUndo;\n },\n getThing: (instance, payload) => {\n return new Promise((resolve, reject) => {\n var url = EcRemote.urlAppend(payload.server, payload.service);\n url = EcRemote.upgradeHttpToHttps(url);\n fetch(url, {\n headers: payload.headers\n }).then((resp) => {\n if (payload.success) {\n payload.success(resp.data);\n }\n resolve(resp.data);\n }).catch((err) => {\n if (payload.failure) {\n payload.failure(err);\n }\n reject(err);\n });\n });\n },\n searchForAssertions: (instance) => {\n return new Promise((resolve, reject) => {\n instance.state.searchingAssertions = true;\n var assertions = [];\n let doSearch = async function(start, count) {\n return new Promise((resolve, reject) => {\n EcAssertion.search(window.repo, \"\\\"\" + instance.state.me + \"\\\"\", async(results) => {\n assertions.push(...results);\n start += count;\n if (results.length > 0) {\n await doSearch(start, count);\n }\n resolve();\n }, reject, {size: count, start: start});\n });\n };\n\n doSearch(0, 5000).then(() => {\n var eah = new EcAsyncHelper();\n eah.each(assertions, (assertion, callback) => {\n if (assertion.assertionDateDecrypted != null) {\n callback();\n } else {\n assertion.getAssertionDateAsync((date) => {\n assertion.assertionDateDecrypted = date;\n callback();\n }, callback);\n }\n },\n (assertions) => {\n instance.state.assertions = assertions;\n instance.state.searchingAssertions = false;\n resolve();\n });\n }).catch(appError);\n });\n },\n computeBecause: (instance, evidences) => {\n return new Promise((resolve, reject) => {\n var explanations = [];\n new EcAsyncHelper().each(evidences, (e, callback) => {\n var evidenceString = \"\";\n var eoriginal = e;\n if (e.startsWith != null && e.startsWith(\"{\")) {\n e = JSON.parse(e);\n }\n if (EcObject.isObject(e)) {\n if (e.verb != null) {\n if (e.verb.display != null) {\n if (e.verb.display.en != null) {\n evidenceString += e.verb.display.en + \" \";\n }\n }\n }\n if (e.object != null) {\n if (e.object.definition != null) {\n if (e.object.definition.type === \"http://adlnet.gov/expapi/activities/assessment\") {\n evidenceString += \"\\\"\" + e.object.definition.name.en + \"\\\" quiz with a \";\n if (e.result != null) {\n if (e.result.success != null) {\n evidenceString += e.result.success ? \" passing \" : \" not passing \";\n evidenceString += Math.round(e.result.score.scaled * 100.0) + \"%\";\n }\n }\n }\n }\n }\n if (e.object != null) {\n if (e.object.definition != null) {\n if (e.object.definition.interactionType != null) {\n evidenceString += \"\\\"\" + e.object.definition.name.en + \"\\\" \";\n if (e.result != null) {\n if (e.result.success != null) {\n evidenceString += e.result.success ? \" correctly\" : \" incorrectly\";\n }\n }\n }\n }\n }\n if (evidenceString !== \"\") {\n explanations.push({text: evidenceString, original: eoriginal});\n }\n callback();\n } else if (e.startsWith != null && e.startsWith(\"http\")) {\n let failureFunc = function() {\n explanations.push({\n text: \"did this\",\n url: e,\n original: eoriginal\n });\n };\n EcRepository.get(e, (success) => {\n try {\n if (success.isAny(new ChooseAction().getTypes())) {\n EcRepository.get(success.object, (creativeWork) => {\n explanations.push({\n text: \"viewed \" + creativeWork.name,\n url: creativeWork.url,\n original: eoriginal\n });\n callback();\n }, callback);\n } else {\n failureFunc();\n callback();\n }\n } catch (e) {\n failureFunc();\n callback();\n }\n }, (failure) => {\n failureFunc();\n callback();\n });\n } else {\n explanations.push({text: \"\\\"\" + e + \"\\\"\", original: eoriginal});\n callback();\n }\n }, (evidences) => {\n resolve(explanations);\n });\n });\n }\n};\nconst getters = {\n framework: function(state) {\n return state.framework;\n },\n organization: function(state) {\n return state.organization;\n },\n selectedCompetency: function(state) {\n return state.selectedCompetency;\n },\n queryParams: function(state) {\n return state.queryParams;\n },\n defaultLanguage: function(state) {\n return state.defaultLanguage;\n },\n webSocketBackoff: function(state) {\n return state.webSocketBackoff;\n },\n selectCompetencyRelation: function(state) {\n return state.selectCompetencyRelation;\n },\n selectingCompetencies: function(state) {\n return state.selectingCompetencies;\n },\n private: function(state) {\n return state.private;\n },\n newCompetency: function(state) {\n return state.newCompetency;\n },\n newFramework: function(state) {\n return state.newFramework;\n },\n t3Profile: function(state) {\n return state.t3Profile;\n },\n changedObject: function(state) {\n return state.changedObject;\n },\n configuration: function(state) {\n return state.configuration;\n },\n addCommentAboutId: function(state) {\n return state.addCommentAboutId;\n },\n addCommentType: function(state) {\n return state.addCommentType;\n },\n commentToEdit: function(state) {\n return state.commentToEdit;\n },\n commentToReply: function(state) {\n return state.commentToReply;\n },\n commentsToDelete: function(state) {\n return state.commentsToDelete;\n },\n frameworkCommentDataLoaded: function(state) {\n return state.frameworkCommentDataLoaded;\n },\n frameworkCommentList: function(state) {\n return state.frameworkCommentList;\n },\n frameworkCommentPersonMap: function(state) {\n return state.frameworkCommentPersonMap;\n },\n commentScrollTo: function(state) {\n return state.commentScrollTo;\n },\n recomputeHierarchy: function(state) {\n return state.recomputeHierarchy;\n },\n recomputePrecedence: function(state) {\n return state.recomputePrecedence;\n },\n recomputePrecedenceAfterReorder: function(state) {\n return state.recomputePrecedenceAfterReorder;\n },\n selectedCompetenciesAsProperties: function(state) {\n return state.selectedCompetenciesAsProperties;\n },\n refreshLevels: function(state) {\n return state.refreshLevels;\n },\n refreshAlignments: function(state) {\n return state.refreshAlignments;\n },\n refreshProperties: function(state) {\n return state.refreshProperties;\n },\n conceptMode: function(state) {\n return state.conceptMode;\n },\n collectionMode: function(state) {\n return state.collectionMode;\n },\n progressionMode: function(state) {\n return state.progressionMode;\n },\n cutId: function(state) {\n return state.cutId;\n },\n copyId: function(state) {\n return state.copyId;\n },\n paste: function(state) {\n return state.paste;\n },\n cutOrCopyContainerId: function(state) {\n return state.cutOrCopyContainerId;\n },\n nodeInFocus: function(state) {\n return state.nodeInFocus;\n },\n relations: function(state) {\n return state.relations;\n },\n setPropertyLevel: function(state) {\n return state.setPropertyLevel;\n },\n addAnother: function(state) {\n return state.addAnother;\n },\n itemToDelete: function(state) {\n return state.itemToDelete;\n },\n itemToRemove: function(state) {\n return state.itemToRemove;\n },\n itemToExport: function(state) {\n return state.itemToExport;\n },\n manageAssertions: function(state) {\n return state.manageAssertions;\n },\n assertions: function(state) {\n return state.assertions.sort((a, b) => {\n return b.assertionDateDecrypted - a.assertionDateDecrypted;\n });\n },\n badgePk: function(state) {\n return state.badgePk;\n },\n getMe: function(state) {\n return state.me;\n },\n getSubject: function(state) {\n return state.subject;\n },\n people: function(state) {\n return state.people;\n },\n firstSearchProcessing: function(state) {\n return state.firstSearchProcessing;\n },\n searchingAssertions: function(state) {\n return state.searchingAssertions;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","// This store is used to control app state for behavior\n// such as displaying certain modals\n// and transitions\n\nconst state = {\n sideNavEnabled: true,\n showSideNav: true,\n showRightAside: false,\n rightAsideContent: '',\n rightAsideObject: null,\n canViewComments: false,\n canAddComments: false,\n pluginLastUpdate: null,\n pluginToLaunch: null,\n pluginToLaunchLastUpdate: 0,\n framework: {\n showToolBar: true,\n commentsEnabled: true,\n versionsEnabled: true,\n draggingEnabled: false,\n isDragging: false,\n draggable: {}\n },\n configuration: {\n contentSection: ''\n },\n frameworks: {\n searchTerm: '',\n quickFilters: [],\n applySearchTo: [],\n sortResults: [],\n refreshSearch: false,\n searchFrameworksInCompetencySearch: false\n },\n modal: {\n framework: '',\n showModal: false,\n dynamicModalContent: {},\n objForShareModal: null\n },\n directories: {\n directoryList: [],\n selectedDirectory: null,\n searchingInDirectory: true,\n editDirectory: false\n },\n import: {\n files: [],\n transition: 'upload', // upload, process, detail, preview, light\n status: '', // success, failure, edit\n type: 'file', // pdf, server, text\n fileType: '',\n firstImport: Boolean,\n errors: [], // erorrs from the code or from the api\n feedback: '', // additional information\n duplicates: [],\n skip: [],\n framework: null,\n serverUrl: '',\n url: '',\n frameworkName: '',\n frameworkDescription: '',\n importCsv: {\n nameColumn: {},\n descriptionColumn: {},\n scopeColumn: {},\n idColumn: {},\n sourceColumn: {},\n relationColumn: {},\n targetColumn: {}\n },\n importText: '',\n csvColumns: [],\n csvRelationColumns: [],\n csvRelationFile: null,\n importModalParams: null\n },\n allowCancel: false,\n banner: {\n message: '',\n color: '',\n background: ''\n },\n motd: {\n message: '',\n title: ''\n },\n curatedPlugins: [\n {\n \"id\": \"vlrcTestPlugin3\",\n \"url\": \"https://raw.githubusercontent.com/cassproject/cass-vlrc/master/\"\n }\n ]\n};\nconst mutations = {\n showSideNav: function() {\n state.showSideNav = true;\n state.showRightAside = false;\n },\n closeSideNav: function() {\n state.showSideNav = false;\n },\n showRightAside: function(state, payload) {\n state.showRightAside = true;\n state.rightAsideContent = payload;\n // state.showSideNav = false;\n },\n closeRightAside: function(state) {\n state.showRightAside = false;\n state.rightAsideContent = '';\n state.rightAsideObject = null;\n },\n rightAsideObject: async function(state, payload) {\n if (payload.encryptedType) {\n let type = \"Ec\" + payload.encryptedType;\n let obj = new window[type]();\n obj.copyFrom(await EcEncryptedValue.fromEncryptedValue(payload));\n state.rightAsideObject = obj;\n } else {\n state.rightAsideObject = payload;\n }\n },\n showModal: function(state, payload) {\n state.modal.showModal = true;\n state.modal.dynamicModalContent = payload;\n },\n closeModal: function(state) {\n state.modal.showModal = false;\n state.modal.dynamicModalContent = {};\n },\n objForShareModal: function(state, payload) {\n state.modal.objForShareModal = payload;\n },\n draggingEnabled: function(state, value) {\n state.framework.draggingEnabled = value;\n },\n isDragging: function(state, value) {\n state.framework.isDragging = value;\n },\n draggable: function(state, value) {\n state.framework.draggable = value;\n },\n importFiles: function(state, value) {\n state.import.files = value;\n },\n setCanViewComments: function(state, value) {\n state.canViewComments = value;\n },\n setCanAddComments: function(state, value) {\n state.canAddComments = value;\n },\n clearImportFiles: function(state) {\n state.import.files = [];\n },\n pluginLastUpdate: function(state, value) {\n state.pluginLastUpdate = value;\n },\n pluginToLaunch: function(state, value) {\n state.pluginToLaunch = value;\n },\n pluginToLaunchLastUpdate: function(state, value) {\n state.pluginToLaunchLastUpdate = value;\n },\n resetImport: function(state) {\n state.import = {\n files: [],\n transition: 'upload', // upload, process, detail, preview, light\n status: '', // success, failure, edit\n type: 'file', // pdf, server, text\n fileType: '',\n firstImport: Boolean,\n errors: [], // erorrs from the code or from the api\n feedback: '', // additional information\n duplicates: [],\n skip: [],\n framework: null,\n serverUrl: '',\n url: '',\n frameworkName: '',\n frameworkDescription: '',\n importCsv: {\n nameColumn: {},\n descriptionCcolumn: {},\n scopeColumn: {},\n idColumn: {},\n sourceColumn: {},\n relationColumn: {},\n targetColumn: {}\n },\n importText: '',\n csvColumns: [],\n csvRelationColumns: [],\n csvRelationFile: null,\n importModalParams: null\n };\n },\n importTransition: function(state, value) {\n state.import.transition = value;\n },\n importFileType: function(state, value) {\n state.import.fileType = value;\n },\n importType: function(state, value) {\n state.import.type = value;\n },\n firstImport: function(state, val) {\n state.import.firstImport = val;\n },\n addImportError: function(state, val) {\n state.import.errors.push(val);\n },\n clearImportErrors: function(state) {\n state.import.errors = [];\n },\n importStatus: function(state, val) {\n state.import.status = val;\n },\n importAllowCancel: function(state, val) {\n state.allowCancel = val;\n },\n importFeedback: function(state, val) {\n state.import.feedback = val;\n },\n importDuplicates: function(state, val) {\n state.import.duplicates = val;\n },\n importSkip: function(state, val) {\n state.import.skip = val;\n },\n importFramework: function(state, val) {\n state.import.framework = val;\n },\n importFrameworkName: function(state, val) {\n state.import.frameworkName = val;\n },\n importFrameworkNameColumn: function(state, val) {\n state.import.frameworkNameColumn = val;\n },\n importFrameworkScopeColumn: function(state, val) {\n state.import.frameworkScopeColumn = val;\n },\n importFrameworkIdColumn: function(state, val) {\n state.import.frameworkIdColumn = val;\n },\n importFrameworkDescription: function(state, val) {\n state.import.frameworkDescription = val;\n },\n importText: function(state, val) {\n state.import.importText = val;\n },\n importServerUrl: function(state, val) {\n state.import.serverUrl = val;\n },\n importUrl: function(state, val) {\n state.import.url = val;\n },\n importNameColumn: function(state, val) {\n state.import.importCsv.nameColumn = val;\n },\n importDescriptionColumn: function(state, val) {\n state.import.importCsv.descriptionColumn = val;\n },\n importScopeColumn: function(state, val) {\n state.import.importCsv.scopeColumn = val;\n },\n importSourceColumn: function(state, val) {\n state.import.importCsv.sourceColumn = val;\n },\n importTargetColumn: function(state, val) {\n state.import.importCsv.targetColumn = val;\n },\n importRelationColumn: function(state, val) {\n state.import.importCsv.relationColumn = val;\n },\n importIdColumn: function(state, val) {\n state.import.importCsv.idColumn = val;\n },\n csvColumns: function(state, val) {\n state.import.csvColumns = val;\n },\n csvRelationColumns: function(state, val) {\n state.import.csvRelationColumns = val;\n },\n csvRelationFile: function(state, val) {\n state.import.csvRelationFile = val;\n },\n importModalParams: function(state, val) {\n state.import.importModalParams = val;\n },\n searchTerm: function(state, value) {\n state.frameworks.searchTerm = value;\n },\n applySearchTo: function(state, value) {\n state.frameworks.applySearchTo = value;\n },\n refreshSearch: function(state, value) {\n state.frameworks.refreshSearch = value;\n },\n sortResults: function(state, value) {\n state.frameworks.sortResults = value;\n },\n quickFilters: function(state, value) {\n state.frameworks.quickFilters = value;\n },\n singleQuickFilter: function(state, value) {\n let i = state.frameworks.quickFilters.findIndex((filter) => filter.id === value.id);\n if (i >= 0) {\n state.frameworks.quickFilters[i].checked = value.checked;\n } else {\n state.frameworks.quickFilters.push(value);\n }\n },\n clearSearchFilters: function(state) {\n let quickFilters = state.frameworks.quickFilters;\n let sortResults = state.frameworks.sortResults;\n let applySearchTo = state.frameworks.applySearchTo;\n\n for (let i = 0; i < quickFilters.length; i++) {\n quickFilters[i].checked = false;\n }\n for (let i = 0; i < sortResults.length; i++) {\n sortResults[i].checked = false;\n }\n for (let i = 0; i < applySearchTo.length; i++) {\n applySearchTo[i].checked = false;\n }\n state.frameworks.quickFilters = quickFilters;\n state.frameworks.sortResults = sortResults;\n state.frameworks.applySearchTo = applySearchTo;\n },\n selectDirectory: function(state, value) {\n state.directories.selectedDirectory = value;\n },\n directoryList: function(state, list) {\n state.directories.directoryList = list;\n },\n searchingInDirectory: function(state, bool) {\n state.directories.searchingInDirectory = bool;\n },\n editDirectory: function(state, bool) {\n state.directories.editDirectory = bool;\n },\n searchFrameworksInCompetencySearch: function(state, bool) {\n state.frameworks.searchFrameworksInCompetencySearch = bool;\n },\n setBanner: function(state, payload) {\n if (payload.message) {\n state.banner.message = payload.message;\n }\n if (payload.color) {\n state.banner.color = payload.color;\n }\n if (payload.background) {\n state.banner.background = payload.background;\n }\n },\n setMotd: function(state, payload) {\n if (payload.message) {\n state.motd.message = payload.message;\n }\n if (payload.title) {\n state.motd.title = payload.title;\n }\n },\n setCuratedPlugins: function(state, payload) {\n state.curatedPlugins = payload;\n }\n};\nconst actions = {\n clearImport: function({commit}) {\n commit('importFramework', null);\n commit('clearImportFiles');\n commit('clearImportErrors');\n commit('importTransition', 'upload');\n commit('importStatus', '');\n commit('importAllowCancel', false);\n commit('importFeedback', '');\n commit('importFileType', '');\n commit('importDuplicates', []);\n commit('importSkip', []);\n },\n refreshDirectories: function({commit}) {\n let directories = [];\n let directoryIds = [];\n let paramObj = {size: 10000};\n EcDirectory.search(window.repo, \"\", function(dirs) {\n for (let i = 0; i < dirs.length; i++) {\n if (dirs[i].canEditAny(EcIdentityManager.default.getMyPks()) && !EcArray.has(directoryIds, dirs[i].id)) {\n directories.push(dirs[i]);\n directoryIds.push(dirs[i].id);\n }\n }\n commit('directoryList', directories);\n }, appError, paramObj);\n }\n};\nconst getters = {\n canViewComments: state => {\n return state.canViewComments;\n },\n canAddComments: state => {\n return state.canAddComments;\n },\n sideNavEnabled: state => {\n return state.sideNavEnabled;\n },\n showSideNav: state => {\n return state.showSideNav;\n },\n showRightAside: state => {\n return state.showRightAside;\n },\n rightAsideContent: state => {\n return state.rightAsideContent;\n },\n rightAsideObject: state => {\n return state.rightAsideObject;\n },\n framework: state => {\n return state.framework;\n },\n showModal: state => {\n return state.modal.showModal;\n },\n dynamicModalContent: state => {\n return state.modal.dynamicModalContent;\n },\n objForShareModal: state => {\n return state.modal.objForShareModal;\n },\n draggingEnabled: state => {\n return state.modal.draggingEnabled;\n },\n isDragging: state => {\n return state.modal.isDragging;\n },\n draggable: state => {\n return state.framework.draggable;\n },\n importFiles: state => {\n return state.import.files;\n },\n importTransition: state => {\n return state.import.transition;\n },\n importFileType: state => {\n return state.import.fileType;\n },\n importType: state => {\n return state.import.type;\n },\n firstImport: state => {\n return state.import.firstImport;\n },\n importErrors: state => {\n return state.import.errors;\n },\n importStatus: state => {\n return state.import.status;\n },\n importAllowCancel: state => {\n return state.allowCancel;\n },\n importFeedback: state => {\n return state.import.feedback;\n },\n importDuplicates: state => {\n return state.import.duplicates;\n },\n importSkip: state => {\n return state.import.skip;\n },\n importFramework: state => {\n return state.import.framework;\n },\n importFrameworkName: state => {\n return state.import.frameworkName;\n },\n importFrameworkNameColumn: state => {\n return state.import.frameworkNameColumn;\n },\n importFrameworkScopeColumn: state => {\n return state.import.frameworkScopeColumn;\n },\n importFrameworkIdColumn: state => {\n return state.import.frameworkIdColumn;\n },\n importFrameworkDescription: state => {\n return state.import.frameworkDescription;\n },\n importText: state => {\n return state.import.importText;\n },\n importServerUrl: state => {\n return state.import.serverUrl;\n },\n importUrl: state => {\n return state.import.url;\n },\n importNameColumn: state => {\n return state.import.importCsv.nameColumn;\n },\n importDescriptionColumn: state => {\n return state.import.importCsv.descriptionColumn;\n },\n importScopeColumn: state => {\n return state.import.importCsv.scopeColumn;\n },\n importIdColumn: state => {\n return state.import.importCsv.idColumn;\n },\n importSourceColumn: state => {\n return state.import.importCsv.sourceColumn;\n },\n importRelationColumn: state => {\n return state.import.importCsv.relationColumn;\n },\n importTargetColumn: state => {\n return state.import.importCsv.targetColumn;\n },\n importModalParams: state => {\n return state.import.importModalParams;\n },\n searchTerm: state => {\n return state.frameworks.searchTerm;\n },\n sortResults: state => {\n return state.frameworks.sortResults;\n },\n quickFilters: state => {\n return state.frameworks.quickFilters;\n },\n filterByOwnedByMe: (state) => {\n let filter = state.frameworks.quickFilters.find((filter) => filter.id === \"ownedByMe\");\n if (!filter) {\n return false;\n }\n if (Array.isArray(filter) && filter.length > 0) {\n return filter[0].checked;\n } else {\n return filter.checked;\n }\n },\n filterByNotOwnedByMe: (state) => {\n let filter = state.frameworks.quickFilters.find((filter) => filter.id === \"notOwnedByMe\");\n if (!filter) {\n return false;\n }\n if (Array.isArray(filter) && filter.length > 0) {\n return filter[0].checked;\n } else {\n return filter.checked;\n }\n },\n filterByConfigMatchDefault: (state) => {\n let filter = state.frameworks.quickFilters.find((filter) => filter.id === \"configMatchDefault\");\n if (!filter) {\n return false;\n }\n if (Array.isArray(filter) && filter.length > 0) {\n return filter[0].checked;\n } else {\n return filter.checked;\n }\n },\n applySearchTo: state => {\n return state.frameworks.applySearchTo;\n },\n refreshSearch: state => {\n return state.frameworks.refreshSearch;\n },\n csvColumns: state => {\n return state.import.csvColumns;\n },\n csvRelationColumns: state => {\n return state.import.csvRelationColumns;\n },\n csvRelationFile: state => {\n return state.import.csvRelationFile;\n },\n pluginLastUpdate: state => {\n return state.pluginLastUpdate;\n },\n pluginToLaunch: state => {\n return state.pluginToLaunch;\n },\n pluginToLaunchLastUpdate: state => {\n return state.pluginToLaunchLastUpdate;\n },\n selectedDirectory: state => {\n return state.directories.selectedDirectory;\n },\n directoryList: state => {\n return state.directories.directoryList;\n },\n searchingInDirectory: state => {\n return state.directories.searchingInDirectory;\n },\n editDirectory: state => {\n return state.directories.editDirectory;\n },\n searchFrameworksInCompetencySearch: state => {\n return state.frameworks.searchFrameworksInCompetencySearch;\n },\n bannerMessage: state => {\n return state.banner.message;\n },\n bannerColor: state => {\n return state.banner.color;\n },\n bannerBackground: state => {\n return state.banner.background;\n },\n motdTitle: state => {\n return state.motd.title;\n },\n motdMessage: state => {\n return state.motd.message;\n },\n curatedPlugins: state => {\n return state.curatedPlugins;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n loggedOnPerson: {},\n repoInit: {\n ssoLogin: null,\n ssoLogout: null,\n ssoPublicKey: null\n },\n lastLogin: null\n};\nconst mutations = {\n loggedOnPerson(state, personObj) {\n state.loggedOnPerson = personObj;\n if (window.EcIdentityManager.default.ids.length > 0) {\n state.lastLogin = window.EcIdentityManager.default.ids[0].lastLogin;\n } else {\n state.lastLogin = null;\n }\n },\n repositorySsoOptions(state, repoInit) {\n state.repoInit.ssoLogin = repoInit.ssoLogin;\n state.repoInit.ssoLogout = repoInit.ssoLogout;\n state.repoInit.ssoPublicKey = repoInit.ssoPublicKey;\n }\n};\nconst actions = {\n\n};\nconst getters = {\n loggedOnPerson: function(state) {\n return state.loggedOnPerson;\n },\n repositorySsoOptions: function(state) {\n return state.repoInit;\n },\n lastLogin: function(state) {\n return state.lastLogin;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n step: 0,\n frameworkSource: null,\n frameworkSourceRelationships: null,\n frameworkTarget: null,\n frameworkTargetRelationships: null,\n relevantExistingAlignmentsMap: null,\n relevantExistingAlignmentsMapLastUpdate: null,\n alignedCompetenciesList: [],\n workingAlignmentsMap: {\n source: '',\n targets: [],\n initialTargets: [],\n removedTargets: [],\n changed: false,\n type: ''\n },\n alignmentsToSave: [],\n alignmentsToDelete: [],\n sourceState: 'ready',\n targetState: 'ready',\n targetNodesToHighlight: [],\n enabledRelationshipTypes: [],\n enabledRelationshipTypesLastUpdate: null\n};\n\nconst mutations = {\n enabledRelationshipTypesLastUpdate(state, f) {\n state.enabledRelationshipTypesLastUpdate = f;\n },\n enabledRelationshipTypes(state, f) {\n state.enabledRelationshipTypes = f;\n },\n targetNodesToHighlight(state, f) {\n state.targetNodesToHighlight = f;\n },\n frameworkSource(state, f) {\n state.frameworkSource = f;\n },\n frameworkTarget(state, f) {\n state.frameworkTarget = f;\n },\n frameworkSourceRelationships(state, f) {\n state.frameworkSourceRelationships = f;\n },\n frameworkTargetRelationships(state, f) {\n state.frameworkTargetRelationships = f;\n },\n relevantExistingAlignmentsMap(state, f) {\n state.relevantExistingAlignmentsMap = f;\n },\n relevantExistingAlignmentsMapLastUpdate(state, f) {\n state.relevantExistingAlignmentsMapLastUpdate = f;\n },\n alignedCompetenciesList(state, f) {\n state.alignedCompetenciesList = f;\n },\n step(state, val) {\n state.step = val;\n },\n workingAlignmentsSource(state, c) {\n state.workingAlignmentsMap.source = c;\n },\n workingAlignmentsTargets(state, c) {\n state.workingAlignmentsMap.targets = c;\n },\n workingAlignmentsType(state, a) {\n state.workingAlignmentsMap.type = a;\n },\n sourceState(state, s) {\n state.sourceState = s;\n },\n targetState(state, t) {\n state.targetState = t;\n },\n alignmentsToSave(state, t) {\n state.alignmentsToSave = t;\n },\n populateAlignedCompetenciesList(state) {\n if (state.relevantExistingAlignmentsMap) {\n let alignedCompetencies = [];\n let sourceComps = Object.keys(state.relevantExistingAlignmentsMap);\n for (let sc of sourceComps) {\n alignedCompetencies.push(sc);\n let alignTypes = Object.keys(state.relevantExistingAlignmentsMap[sc]);\n for (let scAt of alignTypes) {\n let targetIds = Object.keys(state.relevantExistingAlignmentsMap[sc][scAt]);\n for (let ti of targetIds) {\n alignedCompetencies.push(ti);\n }\n }\n }\n state.alignedCompetenciesList = alignedCompetencies;\n }\n },\n populateWorkingAlignmentMap(state) {\n if (state.relevantExistingAlignmentsMap[state.workingAlignmentsMap.source] &&\n state.relevantExistingAlignmentsMap[state.workingAlignmentsMap.source][state.workingAlignmentsMap.type]) {\n let sourceTypeAlignMap = state.relevantExistingAlignmentsMap[state.workingAlignmentsMap.source][state.workingAlignmentsMap.type];\n let targetIds = Object.keys(sourceTypeAlignMap);\n for (let ti of targetIds) {\n state.workingAlignmentsMap.targets.push(ti);\n state.workingAlignmentsMap.initialTargets.push(ti);\n }\n }\n state.workingAlignmentsMap.changed = false;\n },\n resetFrameworkSourceRelationships(state) {\n state.frameworkSourceRelationships = null;\n state.relevantExistingAlignmentsMap = null;\n },\n resetFrameworkTargetRelationships(state) {\n state.frameworkTargetRelationships = null;\n state.relevantExistingAlignmentsMap = null;\n },\n resetCrosswalkFrameworks(state) {\n state.frameworkSource = null;\n state.frameworkTarget = null;\n state.frameworkSourceRelationships = null;\n state.frameworkTargetRelationships = null;\n state.relevantExistingAlignmentsMap = null;\n },\n resetCrosswalkAlignmentsAndState(state) {\n state.workingAlignmentsMap.source = '';\n state.workingAlignmentsMap.targets = [];\n state.workingAlignmentsMap.initialTargets = [];\n state.workingAlignmentsMap.removedTargets = [];\n state.workingAlignmentsMap.changed = false;\n state.workingAlignmentsMap.type = '';\n state.sourceState = 'ready';\n state.targetState = 'ready';\n state.alignmentsToSave = [];\n state.alignmentsToDelete = [];\n },\n resetCrosswalk(state) {\n state.step = 0;\n state.workingAlignmentsMap.source = '';\n state.workingAlignmentsMap.targets = [];\n state.workingAlignmentsMap.initialTargets = [];\n state.workingAlignmentsMap.removedTargets = [];\n state.workingAlignmentsMap.changed = false;\n state.workingAlignmentsMap.type = '';\n state.sourceState = 'ready';\n state.targetState = 'ready';\n state.alignmentsToSave = [];\n state.alignmentsToDelete = [];\n },\n resetWorkingAlignmentsMap(state) {\n state.sourceState = 'ready';\n state.targetState = 'ready';\n state.workingAlignmentsMap = {\n source: '',\n targets: [],\n initialTargets: [],\n removedTargets: [],\n changed: false,\n type: ''\n };\n },\n addWorkingAlignmentsTarget(state, id) {\n let remTargets = state.workingAlignmentsMap.removedTargets;\n let filteredRemovedTargets = remTargets.filter(remTargets => remTargets !== id);\n state.workingAlignmentsMap.removedTargets = filteredRemovedTargets;\n state.workingAlignmentsMap.targets.push(id);\n if (state.workingAlignmentsMap.removedTargets.length > 0) state.workingAlignmentsMap.changed = true;\n else {\n let shouldSetToChanged = false;\n for (let t of state.workingAlignmentsMap.targets) {\n if (!state.workingAlignmentsMap.initialTargets.includes(t)) {\n shouldSetToChanged = true;\n break;\n }\n }\n if (shouldSetToChanged) state.workingAlignmentsMap.changed = true;\n else state.workingAlignmentsMap.changed = false;\n }\n },\n removeWorkingAlignmentsTarget(state, id) {\n let targets = state.workingAlignmentsMap.targets;\n let filtered = targets.filter(target => target !== id);\n state.workingAlignmentsMap.targets = filtered;\n if (state.workingAlignmentsMap.initialTargets.includes(id)) state.workingAlignmentsMap.removedTargets.push(id);\n if (state.workingAlignmentsMap.removedTargets.length > 0) state.workingAlignmentsMap.changed = true;\n else {\n let shouldSetToChanged = false;\n for (let t of state.workingAlignmentsMap.targets) {\n if (!state.workingAlignmentsMap.initialTargets.includes(t)) {\n shouldSetToChanged = true;\n break;\n }\n }\n if (shouldSetToChanged) state.workingAlignmentsMap.changed = true;\n else state.workingAlignmentsMap.changed = false;\n }\n },\n removeAlignmentFromRelevantAlignmentsMap(state, alignProps) {\n if (state.relevantExistingAlignmentsMap[alignProps.source]) {\n if (state.relevantExistingAlignmentsMap[alignProps.source][alignProps.type]) {\n if (state.relevantExistingAlignmentsMap[alignProps.source][alignProps.type][alignProps.target]) {\n let ream = state.relevantExistingAlignmentsMap;\n delete ream[alignProps.source][alignProps.type][alignProps.target];\n state.relevantExistingAlignmentsMap = ream;\n }\n }\n }\n },\n addAlignmentToRelevantAlignmentsMap(state, ecaObj) {\n let ream = state.relevantExistingAlignmentsMap;\n if (!ream[ecaObj.source]) ream[ecaObj.source] = {};\n if (!ream[ecaObj.source][ecaObj.relationType]) ream[ecaObj.source][ecaObj.relationType] = {};\n if (!ream[ecaObj.source][ecaObj.relationType][ecaObj.target]) ream[ecaObj.source][ecaObj.relationType][ecaObj.target] = ecaObj;\n state.relevantExistingAlignmentsMap = ream;\n },\n removeAlignmentFromAlignmentsToSave(state, alignProps) {\n let newAts = [];\n for (let a of state.alignmentsToSave) {\n if (!(a.source === alignProps.source && a.target === alignProps.target && a.relationType === alignProps.type)) {\n newAts.push(a);\n }\n }\n state.alignmentsToSave = newAts;\n },\n removeAlignmentFromAlignmentsToDelete(state, alignProps) {\n let newAtd = [];\n for (let a of state.alignmentsToDelete) {\n if (!(a.source === alignProps.source && a.target === alignProps.target && a.relationType === alignProps.type)) {\n newAtd.push(a);\n }\n }\n state.alignmentsToDelete = newAtd;\n },\n appendAlignmentsToDelete(state, alignment) {\n state.alignmentsToDelete.push(alignment);\n },\n appendAlignmentsToSave(state, alignment) {\n state.alignmentsToSave.push(alignment);\n }\n};\nconst actions = {\n\n};\nconst getters = {\n enabledRelationshipTypesLastUpdate: function(state) {\n return state.enabledRelationshipTypesLastUpdate;\n },\n enabledRelationshipTypes: function(state) {\n return state.enabledRelationshipTypes;\n },\n frameworkSource: function(state) {\n return state.frameworkSource;\n },\n frameworkTarget: function(state) {\n return state.frameworkTarget;\n },\n frameworkSourceRelationships: function(state) {\n return state.frameworkSourceRelationships;\n },\n frameworkTargetRelationships: function(state) {\n return state.frameworkTargetRelationships;\n },\n relevantExistingAlignmentsMap: function(state) {\n return state.relevantExistingAlignmentsMap;\n },\n relevantExistingAlignmentsMapLastUpdate: function(state) {\n return state.relevantExistingAlignmentsMapLastUpdate;\n },\n workingAlignmentsSource(state) {\n return state.workingAlignmentsMap.source;\n },\n workingAlignmentsTargets(state) {\n return state.workingAlignmentsMap.targets;\n },\n workingAlignmentsType(state, a) {\n return state.workingAlignmentsMap.type;\n },\n sourceState(state) {\n return state.sourceState;\n },\n targetState(state) {\n return state.targetState;\n },\n alignmentsToSave(state) {\n return state.alignmentsToSave;\n },\n alignmentsToDelete(state) {\n return state.alignmentsToDelete;\n },\n alignedCompetenciesList(state) {\n return state.alignedCompetenciesList;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n cassApiLocation: ''\n};\n\nconst mutations = {\n cassApiLocation(state, f) {\n state.cassApiLocation = f;\n }\n};\n\nconst actions = {\n};\n\nconst getters = {\n cassApiLocation: function(state) {\n return state.cassApiLocation;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","const state = {\n CONFIG_SEARCH_SIZE: 10000,\n DEFAULT_CONFIGURATION_TYPE: 'Configuration',\n DEFAULT_CONFIGURATION_CONTEXT: 'https://schema.cassproject.org/0.4/',\n LANG_STRING_RANGE: 'http://www.w3.org/2000/01/rdf-schema#langString',\n DEFAULT_HEADING: \"General\",\n LEVEL_SEARCH_SIZE: 10000,\n PERSON_SEARCH_SIZE: 10000,\n DEFAULT_CUSTOM_PROPERTY_CONTEXT: 'https://schema.cassproject.org/0.4/',\n DEFAULT_CUSTOM_PROPERTY_RANGE: 'http://schema.org/Text',\n defaultBrowserConfig: '',\n defaultBrowserConfigName: '',\n localDefaultBrowserConfig: '',\n configBusy: false,\n configList: [],\n configView: 'list',\n currentConfig: {},\n showConfirmDeleteConfigModal: false,\n showMustBeLoggedInModal: false,\n showBrowserConfigSetModal: false,\n configToDelete: {},\n availableConcepts: []\n};\n\nconst mutations = {\n setConfigToDelete(state, val) {\n state.configToDelete = val;\n },\n setShowMustBeLoggedInModal(state, val) {\n state.showMustBeLoggedInModal = val;\n },\n setShowBrowserConfigSetModal(state, val) {\n state.showBrowserConfigSetModal = val;\n },\n setShowConfirmDeleteConfigModal(state, val) {\n state.showConfirmDeleteConfigModal = val;\n },\n setCurrentConfig(state, val) {\n state.currentConfig = val;\n },\n setConfigView(state, val) {\n state.configView = val;\n },\n setConfigList(state, val) {\n state.setConfigList = val;\n },\n setConfigBusy(state, val) {\n state.configBusy = val;\n },\n setDefaultBrowserConfig(state, val) {\n state.defaultBrowserConfig = val;\n },\n setDefaultBrowserConfigName(state, val) {\n state.defaultBrowserConfigName = val;\n },\n setLocalDefaultBrowserConfig(state, val) {\n state.localDefaultBrowserConfig = val;\n },\n setAvailableConcepts(state, val) {\n state.availableConcepts = val;\n },\n setAvailableTypes(state, val) {\n state.availableTypes = val;\n }\n};\nconst actions = {\n\n};\nconst getters = {\n configToDelete: function(state) {\n return state.configToDelete;\n },\n showConfirmDeleteConfigModal: function(state) {\n return state.showConfirmDeleteConfigModal;\n },\n showMustBeLoggedInModal: function(state) {\n return state.showMustBeLoggedInModal;\n },\n showBrowserConfigSetModal: function(state) {\n return state.showBrowserConfigSetModal;\n },\n LEVEL_SEARCH_SIZE: function(state) {\n return state.LEVEL_SEARCH_SIZE;\n },\n GROUP_SEARCH_SIZE: function(state) {\n return state.GROUP_SEARCH_SIZE;\n },\n PERSON_SEARCH_SIZE: function(state) {\n return state.PERSON_SEARCH_SIZE;\n },\n DEFAULT_CUSTOM_PROPERTY_CONTEXT: function(state) {\n return state.DEFAULT_CUSTOM_PROPERTY_CONTEXT;\n },\n DEFAULT_CUSTOM_PROPERTY_RANGE: function(state) {\n return state.DEFAULT_CUSTOM_PROPERTY_RANGE;\n },\n DEFAULT_CONFIGURATION_TYPE: function(state) {\n return state.DEFAULT_CONFIGURATION_TYPE;\n },\n DEFAULT_CONFIGURATION_CONTEXT: function(state) {\n return state.DEFAULT_CONFIGURATION_CONTEXT;\n },\n LANG_STRING_RANGE: function(state) {\n return state.LANG_STRING_RANGE;\n },\n DEFAULT_HEADING: function(state) {\n return state.DEFAULT_HEADING;\n },\n CONFIG_SEARCH_SIZE(state) {\n return state.CONFIG_SEARCH_SIZE;\n },\n currentConfig(state) {\n return state.currentConfig;\n },\n configView(state) {\n return state.configView;\n },\n configList(state) {\n return state.configList;\n },\n defaultBrowserConfig(state) {\n return state.defaultBrowserConfig;\n },\n defaultBrowserConfigName(state) {\n return state.defaultBrowserConfigName;\n },\n localDefaultBrowserConfig(state) {\n return state.localDefaultBrowserConfig;\n },\n configBusy(state) {\n return state.configBusy;\n },\n availableConcepts(state) {\n return state.availableConcepts;\n },\n availableTypes(state) {\n return state.availableTypes;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\n\nconst state = {\n crosswalkEnabled: true,\n userManagementEnabled: true,\n configurationsEnabled: true,\n searchByOwnerNameEnabled: true,\n pluginsEnabled: true,\n loginEnabled: true,\n legacyLoginEnabled: true,\n apiLoginEnabled: false,\n shareEnabled: true,\n shareLink: false,\n ownedByMe: false\n};\n\nconst mutations = {\n crosswalkEnabled(state, bool) {\n state.crosswalkEnabled = bool;\n },\n userManagementEnabled(state, bool) {\n state.userManagementEnabled = bool;\n },\n configurationsEnabled(state, bool) {\n state.configurationsEnabled = bool;\n },\n searchByOwnerNameEnabled(state, bool) {\n state.searchByOwnerNameEnabled = bool;\n },\n pluginsEnabled(state, bool) {\n state.pluginsEnabled = bool;\n },\n loginEnabled(state, bool) {\n state.loginEnabled = bool;\n },\n apiLoginEnabled(state, bool) {\n state.apiLoginEnabled = bool;\n },\n legacyLoginEnabled(state, bool) {\n state.legacyLoginEnabled = bool;\n },\n shareEnabled(state, bool) {\n state.shareEnabled = bool;\n },\n shareLink(state, bool) {\n state.shareLink = bool;\n },\n ownedByMe(state, bool) {\n state.ownedByMe = bool;\n }\n};\n\nconst actions = {\n\n};\n\nconst getters = {\n legacyLoginEnabled: function(state) {\n return state.legacyLoginEnabled;\n },\n apiLoginEnabled: function(state) {\n return state.apiLoginEnabled;\n },\n ownedByMe: function(state) {\n return state.ownedByMe;\n }\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport lode from './modules/lode.js';\nimport editor from './modules/editor.js';\nimport app from './modules/app.js';\nimport user from './modules/user.js';\nimport crosswalk from './modules/crosswalk.js';\nimport environment from './modules/environment.js';\nimport configuration from './modules/configuration.js';\nimport featuresEnabled from './modules/featuresEnabled.js';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n modules: {\n lode,\n editor,\n app,\n user,\n crosswalk,\n environment,\n featuresEnabled,\n configuration\n }\n});\n","/* (ignored) */","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicModal.vue?vue&type=style&index=0&id=704681ec&prod&lang=scss\"","// extracted by mini-css-extract-plugin","import Vue from 'vue';\nimport VueProgressBar from 'vue-progressbar';\nimport App from './App.vue';\nimport './scss/theme.scss';\nimport './scss/styles.scss';\nimport router from './router';\nimport Vuex from 'vuex';\nimport Clipboard from 'v-clipboard';\nimport store from './store/index.js';\nimport InfiniteLoading from 'vue-infinite-loading';\nimport VueResource from 'vue-resource';\n\nimport VueObserveVisibility from 'vue-observe-visibility';\nimport AsyncComputed from 'vue-async-computed';\n\nvar VueScrollTo = require('vue-scrollto');\n\nconst {fetch: originalFetch} = global;\n\nlet PENDING_REQUESTS = 0;\nconst MAX_REQUESTS_COUNT = 10;\nconst INTERVAL_MS = 10;\n\nglobal.fetch = async(...args) => {\n let [resource, config] = args;\n // request interceptor here\n if (PENDING_REQUESTS >= MAX_REQUESTS_COUNT) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(global.fetch(...args));\n }, INTERVAL_MS);\n });\n } else {\n PENDING_REQUESTS++;\n try {\n if (config != null && config.headers != null && Object.values(config.headers).length === 0) {\n delete config.headers;\n }\n const response = await originalFetch(resource, config);\n // response interceptor here\n return response;\n } finally {\n PENDING_REQUESTS = Math.max(0, PENDING_REQUESTS - 1);\n }\n }\n};\n\n\nrequire(\"cassproject\");\nglobal.UUID = require('pure-uuid');\n\nconst options = {\n color: '#68C8DB',\n failedColor: '#D74C44',\n thickness: '5px',\n transition: {\n speed: '0.2s',\n opacity: '0.6s',\n termination: 300\n },\n autoRevert: true,\n location: 'top',\n inverse: false\n};\n\nVue.use(VueProgressBar, options);\nVue.use(require('vue-moment'));\nVue.use(Vuex);\nVue.use(Clipboard);\nVue.use(VueScrollTo, {\n container: \"#framework\",\n duration: 500,\n easing: \"ease\",\n offset: -150,\n force: true,\n cancelable: true,\n onStart: false,\n onDone: false,\n onCancel: false,\n x: false,\n y: true\n});\nVue.use(InfiniteLoading);\nVue.use(VueResource);\nVue.use(VueObserveVisibility);\nVue.use(AsyncComputed);\n\n// directive for clicking outside elements and performing an action\n// add v-click-outside=\"method\" to parent element to do something\nVue.directive('click-outside', {\n bind: function(element, binding, vnode) {\n element.clickOutsideEvent = function(event) {\n if (!(element === event.target || element.contains(event.target))) {\n vnode.context[binding.expression](event);\n }\n };\n document.body.addEventListener('click', element.clickOutsideEvent);\n },\n unbind: function(element) {\n document.body.removeEventListener('click', element.clickOutsideEvent);\n }\n});\n\nEcRepository.caching = true;\nEcRepository.cachingL2 = true;\n\nVue.config.productionTip = false;\n// Vue.config.silent = true;\nVue.config.warnHandler = function(msg, vm, trace) {\n if (msg === 'Invalid prop: type check failed for prop \"clickToLoad\". Expected Boolean, got String with value \"true\".') return;\n if (msg === 'Avoid using non-primitive value as key, use string/number value instead.') return;\n if (msg === \"Duplicate keys detected: '[object Object]'. This may cause an update error.\") return;\n appError((\"[Vue warn]: \" + msg + trace));\n // `trace` is the component hierarchy trace\n};\n\nglobal.appLog = function(x) {\n /* eslint-disable no-console */\n if (process.env.NODE_ENV !== 'production') {\n // console.trace(x);\n console.log(x);\n }\n /* eslint-enable no-console */\n};\n\nglobal.appError = function(x) {\n /* eslint-disable no-console */\n if (process.env.NODE_ENV !== 'production') {\n console.error(x);\n }\n /* eslint-enable no-console */\n};\n\nvar queryParams = function() {\n if (window.document.location.search == null) { return {}; }\n var hashSplit = (window.document.location.search.split(\"?\"));\n if (hashSplit.length > 1) {\n var o = {};\n var paramString = hashSplit[1];\n var parts = (paramString).split(\"&\");\n for (var i = 0; i < parts.length; i++) {\n if (o[parts[i].split(\"=\")[0]]) {\n // Allow multiple values\n o[parts[i].split(\"=\")[0]] = [o[parts[i].split(\"=\")[0]]];\n o[parts[i].split(\"=\")[0]].push(decodeURIComponent(parts[i].replace(parts[i].split(\"=\")[0] + \"=\", \"\")));\n } else {\n o[parts[i].split(\"=\")[0]] = decodeURIComponent(parts[i].replace(parts[i].split(\"=\")[0] + \"=\", \"\"));\n }\n }\n return o;\n }\n return {};\n};\nwindow.queryParams = queryParams();\n\nwindow.app = new Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app');\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=414a336e&prod&lang=scss\"","/* (ignored) */","// extracted by mini-css-extract-plugin","/* (ignored) */","/* (ignored) */","\n\n\n\n\n","global.jsonld = require('jsonld');\n\n\nconst state = {\n schemata: {},\n isSavingProperty: false,\n isSavingThing: false,\n isAddingProperty: false,\n addingProperty: '',\n addingValues: [],\n addingRange: [],\n addingChecked: [],\n removeAddingValueAtIndex: null,\n schemataLookup: {},\n rawSchemata: {},\n schemaFallback: {},\n objectModel: {},\n competencySearchModalOpen: false,\n copyOrLink: false,\n numPropertyComponentsVisible: {},\n searchType: null,\n includeRelations: true\n};\nconst actions = {\n schemata({state, commit}, schema) {\n commit('setSchemata', schema);\n if (EcArray.isArray(schema.obj)) {\n commit('setEmptySchemataLookup', schema);\n for (var i = 0; i < schema.obj.length; i++) {\n let scheme = schema.obj[i];\n commit('setSchemataLookup', {'index': i, 'schema': schema});\n if (scheme[\"http://schema.org/domainIncludes\"] != null) {\n for (var domainType of scheme[\"http://schema.org/domainIncludes\"]) {\n if (state.objectModel[domainType[\"@id\"]] == null) {\n commit('setObjectModel', {'type': domainType, 'val': {}});\n }\n let om = state.objectModel[domainType[\"@id\"]];\n om[scheme[\"@id\"]] = scheme;\n }\n }\n }\n }\n },\n schemaFallback({state}, schema) {\n for (var i = 0; i < schema.length; i++) {\n let scheme = schema[i];\n state.schemaFallback[scheme[\"@id\"]] = schema[i];\n if (scheme[\"http://schema.org/domainIncludes\"] != null) {\n for (var domainType of scheme[\"http://schema.org/domainIncludes\"]) {\n if (state.objectModel[domainType[\"@id\"]] == null) {\n state.objectModel[domainType[\"@id\"]] = {};\n }\n let om = state.objectModel[domainType[\"@id\"]];\n om[scheme[\"@id\"]] = scheme;\n }\n }\n }\n }\n};\nconst mutations = {\n setIsSavingProperty(state, value) {\n state.isSavingProperty = value;\n },\n setIsSavingThing(state, value) {\n state.isSavingThing = value;\n },\n setIsAddingProperty(state, value) {\n state.isAddingProperty = value;\n },\n setAddingProperty(state, value) {\n state.addingProperty = value;\n },\n setAddingValues(state, values) {\n let newValues = [];\n if (Array.isArray(values)) {\n values.forEach((value) => {\n if (value) {\n let newValue = trimUrl(value);\n if (newValue) newValues.push(newValue);\n }\n });\n } else {\n if (values) {\n let newValue = trimUrl(values);\n if (newValue) newValues.push(newValue);\n }\n }\n state.addingValues = newValues;\n },\n addToAddingValues(state, value) {\n let newValue = trimUrl(value);\n if (!state.addingValues) {\n state.addingValues = [];\n }\n if (newValue) {\n state.addingValues.push(newValue);\n }\n },\n setAddingRange(state, value) {\n state.addingRange = value;\n },\n setAddingChecked(state, value) {\n state.addingChecked = value;\n },\n removeAddingValueAtIndex(state, value) {\n state.removeAddingValueAtIndex = value;\n },\n setSchemata(state, schema) {\n state.schemata[schema.id] = schema.obj;\n },\n setSchemataLookup(state, payload) {\n let i = payload.index;\n let schema = payload.schema;\n state.schemataLookup[schema.id][schema.obj[i][\"@id\"]] = schema.obj[i];\n },\n setEmptySchemataLookup(state, schema) {\n state.schemataLookup[schema.id] = {};\n },\n setObjectModel(state, payload) {\n let domainType = payload.type;\n let val = payload.val;\n state.objectModel[domainType[\"@id\"]] = val;\n },\n rawSchemata(state, schema) {\n state.rawSchemata[schema.id] = schema.obj;\n },\n competencySearchModalOpen(state, bool) {\n state.competencySearchModalOpen = bool;\n },\n copyOrLink(state, bool) {\n state.copyOrLink = bool;\n },\n incrementNumPropertyComponents(state, thingId) {\n if (!state.numPropertyComponentsVisible[thingId]) {\n state.numPropertyComponentsVisible[thingId] = 0;\n }\n state.numPropertyComponentsVisible[thingId]++;\n },\n decrementNumPropertyComponents(state, thingId) {\n state.numPropertyComponentsVisible[thingId]--;\n if (state.numPropertyComponentsVisible[thingId] === 0) {\n delete state.numPropertyComponentsVisible[thingId];\n }\n },\n searchType(state, type) {\n state.searchType = type;\n },\n includeRelations(state, bool) {\n state.includeRelations = bool;\n }\n};\nconst getters = {\n isSavingProperty(state) {\n return state.isSavingProperty;\n },\n isSavingThing(state) {\n return state.isSavingThing;\n },\n isAddingProperty(state) {\n return state.isAddingProperty;\n },\n addingProperty(state) {\n return state.addingProperty;\n },\n addingValues(state) {\n return state.addingValues;\n },\n addingRange(state) {\n return state.addingRange;\n },\n addingChecked(state) {\n return state.addingChecked;\n },\n removeAddingValueAtIndex(state) {\n return state.removeAddingValueAtIndex;\n },\n includeRelations(state) {\n return state.includeRelations;\n }\n};\n\nfunction trimUrl(url) {\n if (!url) {\n return undefined;\n }\n if (url === \"\" || (url[\"@value\"] && url[\"@value\"] === \"\")) {\n return undefined;\n }\n let trimmed = url;\n if (trimmed[\"@value\"] && typeof trimmed[\"@value\"] === \"string\" && trimmed[\"@value\"].endsWith(\"/\")) {\n trimmed[\"@value\"] = trimmed[\"@value\"].slice(0, trimmed[\"@value\"].length - 1);\n }\n if (trimmed[\"@value\"] && typeof trimmed[\"@value\"] === \"string\" && trimmed[\"@value\"].startsWith(\"/\")) {\n trimmed[\"@value\"] = trimmed[\"@value\"].slice(1);\n }\n if (trimmed && typeof trimmed === \"string\" && trimmed.endsWith(\"/\")) {\n trimmed = trimmed.slice(0, trimmed.length - 1);\n }\n if (trimmed && typeof trimmed === \"string\" && trimmed.startsWith(\"/\")) {\n trimmed = trimmed.slice(1);\n }\n return trimmed;\n}\n\njsonld.documentLoader = async function(url) {\n if (url in state.rawSchemata) {\n return {\n contextUrl: null, // this is for a context via a link header\n document: state.rawSchemata[url], // this is the actual document that was loaded\n documentUrl: url // this is the actual context URL after redirects\n };\n } else {\n var context;\n var xmlhttp = new XMLHttpRequest();\n xmlhttp.onreadystatechange = function() {\n if (this.readyState === 4 && this.status === 200) {\n context = JSON.parse(this.responseText);\n state.rawSchemata[originalUrl] = context;\n }\n };\n let originalUrl = url;\n let index = url.indexOf('schema.cassproject.org');\n let ending = \"\";\n if (url.substring(url.lastIndexOf('/')).indexOf('2') === -1) {\n ending = \"/index.json-ld\";\n }\n if (index !== -1) {\n url = url.substring(index);\n url = window.location.origin + window.location.pathname + url + ending;\n }\n xmlhttp.open(\"GET\", url, false);\n xmlhttp.setRequestHeader(\"Accept\", \"application/json\");\n xmlhttp.send();\n return {\n contextUrl: null, // this is for a context via a link header\n document: context, // this is the actual document that was loaded\n documentUrl: originalUrl // this is the actual context URL after redirects\n };\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};","import dateFormat from 'dateformat';\n\nexport default {\n data() {\n return {\n conceptCtids: null,\n conceptRegistryUrls: null\n };\n },\n computed: {\n ctids: function() {\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return null;\n }\n if (this.$store.getters['editor/queryParams'] && (this.$store.getters['editor/queryParams'].ceasnDataFields !== \"true\")) {\n return null;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@value\": this.getCTID(framework.shortId())}];\n if (framework.competency) {\n for (var i = 0; i < framework.competency.length; i++) {\n obj[framework.competency[i]] = [{\"@value\": this.getCTID(framework.competency[i])}];\n }\n }\n return obj;\n },\n registryURLs: function() {\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return null;\n }\n if (this.$store.getters['editor/queryParams'] && (this.$store.getters['editor/queryParams'].ceasnDataFields !== \"true\")) {\n return null;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@id\": this.ceasnRegistryUriTransform(framework.shortId())}];\n if (framework.competency) {\n for (var i = 0; i < framework.competency.length; i++) {\n obj[framework.competency[i]] = [{\"@id\": this.ceasnRegistryUriTransform(framework.competency[i])}];\n }\n }\n return obj;\n }\n },\n methods: {\n canEditAny: function(item) {\n if (this.isAdmin()) return true;\n if (item.canEditAny == null) return true;\n return item.canEditAny(EcIdentityManager.default.getMyPks());\n },\n isAdmin: function() {\n let adminKeys = window.repo.adminKeys;\n let userIds = EcIdentityManager.default.ids;\n if (!Array.isArray(adminKeys)) return false;\n if (!Array.isArray(userIds)) return false;\n for (let userId of userIds) {\n let userKey = userId.ppk.toPk().toPem();\n for (let adminKey of adminKeys) {\n if (userKey === adminKey) {\n return true;\n }\n }\n }\n return false;\n },\n getConceptCtids: async function() {\n this.conceptCtids = null;\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return;\n }\n var me = this;\n if (this.queryParams.ceasnDataFields !== \"true\") {\n return;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@value\": this.getCTID(framework.shortId())}];\n var subCtids = async function(ary) {\n for (var i = 0; i < ary.length; i++) {\n obj[ary[i]] = [{\"@value\": me.getCTID(ary[i])}];\n var concept = await EcConcept.get(ary[i]);\n if (concept[\"skos:narrower\"]) {\n await subCtids(concept[\"skos:narrower\"]);\n }\n }\n };\n if (framework[\"skos:hasTopConcept\"]) {\n await subCtids(framework[\"skos:hasTopConcept\"]);\n }\n this.conceptCtids = obj;\n },\n getConceptRegistryUrls: async function() {\n this.conceptRegistryUrls = null;\n let framework = this.framework;\n if (!framework) {\n framework = this.$store.getters['editor/framework'];\n }\n if (!framework || !framework.id) {\n return;\n }\n var me = this;\n if (this.queryParams.ceasnDataFields !== \"true\") {\n return;\n }\n var obj = {};\n obj[framework.shortId()] = [{\"@id\": this.ceasnRegistryUriTransform(framework.shortId())}];\n var subURLs = async function(ary) {\n for (var i = 0; i < ary.length; i++) {\n obj[ary[i]] = [{\"@value\": me.ceasnRegistryUriTransform(ary[i])}];\n var concept = await EcConcept.get(ary[i]);\n if (concept[\"skos:narrower\"]) {\n await subURLs(concept[\"skos:narrower\"]);\n }\n }\n };\n if (framework[\"skos:hasTopConcept\"]) {\n await subURLs(framework[\"skos:hasTopConcept\"]);\n }\n this.conceptRegistryUrls = obj;\n },\n spitEvent: function(message, id, page) {\n var framework = this.framework ? this.framework : this.$store.state.editor.framework;\n var selectedCompetency = this.$store.state.editor.selectedCompetency;\n let frameworkName = null;\n if (framework) {\n if (framework[\"dcterms:title\"]) {\n frameworkName = schema.Thing.getDisplayStringFrom(framework[\"dcterms:title\"]);\n } else {\n frameworkName = framework.getName();\n }\n }\n let compName = null;\n if (selectedCompetency) {\n if (selectedCompetency[\"skos:prefLabel\"]) {\n compName = schema.Thing.getDisplayStringFrom(selectedCompetency[\"skos:prefLabel\"]);\n } else {\n compName = selectedCompetency.getName();\n }\n }\n var evt = {\n message: message,\n changed: id,\n selectedFramework: framework == null ? null : framework.shortId(),\n selectedCompetency: selectedCompetency == null ? null : selectedCompetency.shortId(),\n selectedFrameworkObject: framework == null ? null : JSON.parse(framework.toJson()),\n selectedCompetencyObject: selectedCompetency == null ? null : JSON.parse(selectedCompetency.toJson()),\n selectedFrameworkName: frameworkName,\n selectedCompetencyName: compName,\n visiblePage: page\n };\n if (this.queryParams && this.queryParams.ceasnDataFields === \"true\") {\n if (framework != null) {\n if (framework.getGuid != null) {\n if (framework.getGuid().startsWith(\"ce-\")) {\n evt.selectedFrameworkCtid = framework == null ? null : framework.getGuid();\n } else if (framework.getGuid().matches(\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")) {\n evt.selectedFrameworkCtid = framework == null ? null : \"ce-\" + framework.getGuid();\n } else {\n evt.selectedFrameworkCtid = \"ce-\" + new UUID(3, \"nil\", framework.shortId()).format();\n }\n }\n }\n if (selectedCompetency != null) {\n if (selectedCompetency.getGuid != null) {\n if (selectedCompetency.getGuid().startsWith(\"ce-\")) {\n evt.selectedCompetencyCtid = selectedCompetency == null ? null : selectedCompetency.getGuid();\n } else if (selectedCompetency.getGuid().matches(\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")) {\n evt.selectedCompetencyCtid = selectedCompetency == null ? null : \"ce-\" + selectedCompetency.getGuid();\n } else {\n evt.selectedCompetencyCtid = \"ce-\" + new UUID(3, \"nil\", this.framework.shortId() + selectedCompetency.shortId()).format();\n }\n }\n }\n }\n appLog(evt);\n if (parent != null) {\n if (this.queryParams && this.queryParams.origin != null && this.queryParams.origin !== '') {\n parent.postMessage(evt, this.queryParams.origin);\n }\n }\n },\n setDefaultLanguage: function() {\n var defaultLanguage;\n if (this.framework && this.framework[\"ceasn:inLanguage\"]) {\n defaultLanguage = EcArray.isArray(this.framework[\"ceasn:inLanguage\"]) ? this.framework[\"ceasn:inLanguage\"][0] : this.framework[\"ceasn:inLanguage\"];\n } else if (this.framework && this.framework[\"schema:inLanguage\"]) {\n defaultLanguage = EcArray.isArray(this.framework[\"schema:inLanguage\"]) ? this.framework[\"schema:inLanguage\"][0] : this.framework[\"schema:inLanguage\"];\n } else if (this.framework && this.framework[\"dcterms:language\"]) {\n defaultLanguage = EcArray.isArray(this.framework[\"dcterms:language\"]) ? this.framework[\"dcterms:language\"][0] : this.framework[\"dcterms:language\"];\n } else if (navigator.language || navigator.userLanguage) {\n defaultLanguage = navigator.language || navigator.userLanguage;\n } else {\n defaultLanguage = \"en\";\n }\n this.$store.commit('editor/defaultLanguage', defaultLanguage);\n },\n get: function(server, service, headers, success, failure) {\n var url = EcRemote.urlAppend(server, service);\n url = EcRemote.upgradeHttpToHttps(url);\n var xhr = null;\n if ((typeof httpStatus) === \"undefined\") {\n xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n if (headers != null) {\n var keys = EcObject.keys(headers);\n for (var i = 0; i < keys.length; i++) {\n xhr.setRequestHeader(keys[i], headers[keys[i]]);\n }\n }\n var xhrx = xhr;\n xhr.onreadystatechange = function() {\n if (xhrx.readyState === 4 && xhrx.status === 200) {\n if (success != null) {\n success(xhrx.responseText);\n } else if (xhrx.readyState === 4) {\n if (failure != null) {\n failure(xhrx.status + \" \" + xhrx.responseText);\n }\n }\n }\n };\n xhr.onload = function() {\n if (xhr.status !== 200) {\n failure(xhr.status);\n }\n };\n xhr.onerror = function() {\n failure(\"Failed while sending request.\");\n };\n }\n if (xhr != null) {\n (xhr)[\"timeout\"] = EcRemote.timeout;\n }\n if ((typeof httpStatus) !== \"undefined\") {\n if (success != null) {\n success(JSON.stringify(httpGet(url)));\n }\n } else {\n xhr.send();\n }\n },\n resolveNameFromUrl: function(url) {\n this.get(url, null, null, function(data) {\n var name = null;\n if (data) {\n if (data[0] === \"<\") {\n return;\n }\n data = JSON.parse(data);\n if (data['ceterms:name']) {\n name = data['ceterms:name'];\n } else if (data['ceasn:competencyText']) {\n name = data['ceasn:competencyText'];\n } else if (data['name']) {\n name = data['name'];\n } else if (data['schema:name']) {\n name = data['schema:name'];\n } else if (data['title']) {\n name = data['title'];\n } else if (data['skos:prefLabel']) {\n name = data['skos:prefLabel'];\n } else if (data['title']) {\n name = data['title'];\n } else if (data['@graph'] && data['@graph'][0]) {\n if (data['@graph'][0]['ceterms:name']) {\n name = data['@graph'][0]['ceterms:name'];\n } else if (data['@graph'][0]['name']) {\n name = data['@graph'][0]['name'];\n } else if (data['@graph'][0]['schema:name']) {\n name = data['@graph'][0]['schema:name'];\n } else if (data['@graph'][0]['title']) {\n name = data['@graph'][0]['title'];\n } else if (data['@graph'][0]['skos:prefLabel']) {\n name = data['@graph'][0]['skos:prefLabel'];\n }\n }\n // If it's a langstring\n name = schema.Thing.getDisplayStringFrom(name);\n // If still object, display value\n if (EcObject.isObject(name)) {\n var langs = Object.keys(name);\n name = name[langs[0]];\n }\n }\n return name;\n }, function(error) {\n appLog(error);\n });\n },\n conditionalDelete: function(id, depth) {\n var me = this;\n (function(id, depth) {\n Task.asyncImmediate(function(callback) {\n if (depth === undefined || depth == null) depth = 0;\n if (id == null || id === undefined) {\n appLog(\"ID is undefined.\");\n }\n if (depth < 5) {\n EcFramework.search(window.repo, \"\\\"\" + id + \"\\\"\", async function(results) {\n if (results.length <= 0) {\n appLog(\"No references found for \" + id + \"... deleting.\");\n let obj = await EcRepository.get(id);\n window.repo.deleteRegistered(obj, function(success) {\n if (obj.type === \"Level\") {\n me.$store.commit('editor/refreshLevels', true);\n }\n callback();\n }, function(failure) {\n appLog(failure);\n callback();\n });\n } else {\n appLog(results.length + \" references found for \" + id + \"... Not deleting. Will see again in another second.\");\n callback();\n setTimeout(function() {\n me.conditionalDelete(id, depth + 1);\n }, 1000);\n }\n }, appError, {});\n } else {\n callback();\n }\n });\n })(id, depth);\n },\n selectButton: async function(selectedArray) {\n var ary = [];\n if (!selectedArray) {\n selectedArray = this.selectedArray;\n }\n for (var i = 0; i < selectedArray.length; i++) {\n if (this.queryParams.selectVerbose === \"true\" && this.$store.getters['editor/conceptMode'] !== true && this.$store.getters['editor/progressionMode'] !== true) {\n if (this.queryParams.selectExport === \"ctdlasn\") {\n var link;\n if (EcRepository.shouldTryUrl(selectedArray[i]) === false && selectedArray[i].indexOf(window.repo.selectedServer) === -1) {\n link = window.repo.selectedServer + \"ceasn/\" + EcCrypto.md5(selectedArray[i]);\n } else {\n link = selectedArray[i].replace(\"/data/\", \"/ceasn/\");\n }\n let success = await EcRemote.getExpectingObject(link);\n if (success) {\n ary.push(success);\n }\n } else {\n ary.push(JSON.parse((await EcCompetency.get(selectedArray[i])).toJson()));\n }\n } else if (this.queryParams.selectVerbose === \"true\") {\n ary.push(JSON.parse((await EcConcept.get(selectedArray[i])).toJson()));\n } else {\n ary.push(selectedArray[i]);\n }\n }\n if (this.queryParams.selectRelations === \"true\" && this.framework.relation) {\n for (var i = 0; i < this.framework.relation.length; i++) {\n var relation = await EcAlignment.get(this.framework.relation[i]);\n if (EcArray.has(selectedArray, relation.target)) {\n if (this.queryParams.selectVerbose === \"true\") {\n ary.push(JSON.parse((relation).toJson()));\n } else {\n ary.push(relation.shortId());\n }\n }\n }\n }\n var currentFramework = this.framework;\n if (this.queryParams.selectExport === \"ctdlasn\" && this.$store.getters['editor/conceptMode'] !== true && this.$store.getters['editor/progressionMode'] !== true) {\n if (this.framework != null) {\n var link;\n if (EcRepository.shouldTryUrl(this.framework.id) === false && this.framework.id.indexOf(window.repo.selectedServer) === -1) {\n link = window.repo.selectedServer + \"ceasn/\" + EcCrypto.md5(this.framework.shortId());\n } else {\n link = this.framework.id.replace(\"/data/\", \"/ceasn/\");\n }\n let success = await EcRemote.getExpectingObject(link);\n if (success) {\n // success = JSON.parse(success);\n if (success[\"@graph\"]) {\n currentFramework = success[\"@graph\"][0];\n }\n }\n }\n }\n var message = {\n message: \"selected\",\n selected: ary,\n type: ((this.$store.getters['editor/conceptMode'] === true || this.$store.getters['editor/progressionMode'] === true) ? 'Concept' : 'Competency'),\n selectedFramework: currentFramework\n };\n message = JSON.parse(JSON.stringify(message));\n appLog(message);\n parent.postMessage(message, this.queryParams.origin);\n },\n addLevel: async function(selectedCompetency, optionalLevelUrlOrName) {\n var c;\n var me = this;\n var framework = this.framework ? this.framework : this.$store.getters['editor/framework'];\n var initialLevels = framework.level ? framework.level.slice() : null;\n if (!optionalLevelUrlOrName || !optionalLevelUrlOrName.includes('http')) {\n c = new EcLevel();\n if (this.queryParams.newObjectEndpoint != null) {\n c.generateShortId(this.queryParams.newObjectEndpoint);\n } else {\n c.generateId(window.repo.selectedServer);\n }\n c[\"schema:dateCreated\"] = new Date().toISOString();\n c.name = (optionalLevelUrlOrName && optionalLevelUrlOrName !== \"\") ? optionalLevelUrlOrName : \"New Level\";\n c.competency = selectedCompetency;\n } else {\n optionalLevelUrlOrName = optionalLevelUrlOrName[0];\n var c = await EcRepository.get(optionalLevelUrlOrName);\n if (!c.competency) {\n c.competency = [];\n } else if (!EcArray.isArray(c.competency)) {\n c.competency = [c.competency];\n }\n c.competency.push(selectedCompetency);\n }\n framework[\"schema:dateModified\"] = new Date().toISOString();\n window.repo.saveTo(c, async function() {\n framework.addLevel(c.shortId());\n var edits = [];\n if (!optionalLevelUrlOrName || !optionalLevelUrlOrName.includes('http')) {\n edits.push({operation: \"addNew\", id: c.shortId()});\n }\n edits.push({operation: \"update\", id: framework.shortId(), fieldChanged: [\"level\"], initialValue: [initialLevels], changedValue: [framework.level]});\n me.$store.commit('editor/addEditsToUndo', edits);\n me.$store.commit('editor/framework', framework);\n if (me.$store.state.editor.private === true) {\n if (EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n }\n window.repo.saveTo(framework, function() {\n me.$store.commit('lode/setIsAddingProperty', false);\n me.$store.commit('editor/refreshLevels', true);\n }, appError);\n }, appError);\n },\n saveCheckedLevels: async function(selectedCompetency, checkedOptions, allOptions) {\n let competencyId = [];\n if (EcArray.isArray(selectedCompetency)) {\n competencyId = selectedCompetency;\n } else {\n competencyId.push(EcRemoteLinkedData.trimVersionFromUrl(selectedCompetency[\"@id\"]));\n }\n var initialLevels = this.framework.level ? this.framework.level.slice() : null;\n var frameworkChanged = false;\n var edits = [];\n var me = this;\n for (var i = 0; i < allOptions.length; i++) {\n if (!this.framework.level) {\n this.framework.level = [];\n }\n // If selected\n if (checkedOptions.indexOf(allOptions[i].val) !== -1) {\n var level = await EcLevel.get(allOptions[i].val);\n var initialComp = JSON.parse(JSON.stringify(level.competency));\n if (!EcArray.isArray(level.competency)) {\n level.competency = level.competency == null ? [] : [level.competency];\n }\n let levelChanged = false;\n for (let each in competencyId) {\n if (level.competency.indexOf(competencyId[each]) === -1) {\n level.competency.push(competencyId[each]);\n levelChanged = true;\n }\n }\n if (levelChanged) {\n edits.push({operation: \"update\", id: level.shortId(), fieldChanged: [\"competency\"], initialValue: [initialComp], changedValue: [level.competency]});\n window.repo.saveTo(level, function() {\n me.$store.commit('editor/refreshLevels', true);\n }, appError);\n }\n if (this.framework.level.indexOf(level.shortId()) === -1) {\n this.framework.addLevel(level.shortId());\n frameworkChanged = true;\n }\n } else {\n // If not selected\n var level = await EcLevel.get(allOptions[i].val);\n var initialComp = JSON.parse(JSON.stringify(level.competency));\n let levelChanged = false;\n for (let each in competencyId) {\n if (level.competency && level.competency.indexOf(competencyId[each]) !== -1) {\n EcArray.setRemove(level.competency, competencyId[each]);\n levelChanged = true;\n }\n }\n if (levelChanged) {\n edits.push({operation: \"update\", id: level.shortId(), fieldChanged: [\"competency\"], initialValue: [initialComp], changedValue: [level.competency]});\n window.repo.saveTo(level, function() {\n me.$store.commit('editor/refreshLevels', true);\n }, appError);\n }\n // If level doesn't have any competencies attached, remove it from the framework.\n if ((!level.competency || (level.competency && level.competency.length === 0)) && this.framework.level.indexOf(level.shortId()) !== -1) {\n EcArray.setRemove(this.framework.level, level.shortId());\n frameworkChanged = true;\n }\n }\n }\n if (frameworkChanged) {\n edits.push({operation: \"update\", id: this.framework.shortId(), fieldChanged: [\"level\"], initialValue: [initialLevels], changedValue: [this.framework.level]});\n this.saveFramework();\n }\n this.$store.commit('editor/addEditsToUndo', edits);\n this.$store.commit('lode/setAddingChecked', []);\n this.$store.commit('lode/setIsAddingProperty', false);\n },\n saveFramework: async function() {\n this.framework[\"schema:dateModified\"] = new Date().toISOString();\n var framework = this.framework;\n this.$store.commit('editor/framework', framework);\n if (this.$store.state.editor.private === true && EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n window.repo.saveTo(framework, function() {}, appError);\n },\n removeLevelFromFramework: async function(levelId) {\n var initialLevels = this.framework.level ? this.framework.level.slice() : null;\n this.framework.removeLevel(levelId);\n var level = await EcRepository.get(levelId);\n this.$store.commit('editor/addEditsToUndo', [\n {operation: \"delete\", obj: level},\n {operation: \"update\", id: this.framework.shortId(), fieldChanged: [this.framework.level], initialValue: [initialLevels], changedValue: [this.framework.level]}\n ]);\n this.conditionalDelete(levelId);\n this.saveFramework();\n this.$store.commit('editor/refreshLevels', true);\n },\n addRelationsToFramework: async function(selectedCompetency, property, values) {\n if (values.length > 0) {\n selectedCompetency = await EcRepository.get(selectedCompetency);\n await this.addAlignments(values, selectedCompetency, property);\n }\n },\n addAlignments: async function(targets, thing, relationType, allowSave) {\n if (this.$store.getters['editor/queryParams'].concepts === \"true\" || this.$store.getters['editor/conceptMode'] === true || this.$store.getters['editor/progressionMode'] === true) {\n return this.addConceptAlignments(targets, thing, relationType);\n }\n let urlProperties = [\n \"ceasn:knowledgeEmbodied\",\n \"ceasn:skillEmbodied\",\n \"ceasn:taskEmbodied\",\n \"ceasn:abilityEmbodied\",\n \"ceasn:comprisedOf\",\n \"ceasn:derivedFrom\",\n \"ceasn:inferredCompetency\",\n \"ceasn:isVersionOf\",\n \"ceasn:alignTo\",\n \"ceasn:alignFrom\"\n ];\n if (urlProperties.includes(relationType)) {\n // This property is attached to competency, not a relation attached to framework\n return this.addRelationAsCompetencyField(targets, thing, relationType, allowSave);\n }\n return new Promise(async(resolve, reject) => {\n var framework = this.$store.state.editor.framework;\n var edits = [];\n var initialRelations = framework.relation ? framework.relation.slice() : null;\n for (var i = 0; i < targets.length; i++) {\n var r = new EcAlignment();\n if (this.$store.getters['editor/queryParams'].newObjectEndpoint != null) {\n r.generateShortId(this.$store.getters['editor/queryParams'].newObjectEndpoint);\n } else {\n r.generateId(window.repo.selectedServer);\n }\n edits.push({operation: \"addNew\", id: r.shortId()});\n r[\"schema:dateCreated\"] = new Date().toISOString();\n r.target = EcRemoteLinkedData.trimVersionFromUrl(targets[i]);\n if (thing.id) {\n r.source = thing.shortId();\n } else {\n r.source = EcRemoteLinkedData.trimVersionFromUrl(thing[\"@id\"]);\n }\n if (r.target === r.source) {\n return;\n }\n r.relationType = relationType;\n if (r.relationType === \"broadens\") {\n var dosedo = r.target;\n r.target = r.source;\n r.source = dosedo;\n r.relationType = \"narrows\";\n }\n if (EcIdentityManager.default.ids.length > 0) {\n r.addOwner(EcIdentityManager.default.ids[0].ppk.toPk());\n }\n if (framework.owner && framework.owner.length > 0) {\n for (var j = 0; j < framework.owner.length; j++) {\n var owner = framework.owner[j];\n r.addOwner(EcPk.fromPem(owner));\n }\n }\n if (framework.reader && framework.reader.length > 0) {\n for (var j = 0; j < framework.reader.length; j++) {\n var reader = framework.reader[j];\n r.addReader(EcPk.fromPem(reader));\n }\n }\n if (this.$store.state.editor.private === true) {\n r = await EcEncryptedValue.toEncryptedValue(r);\n }\n await new Promise((res, rej) => {\n window.repo.saveTo(r, res, rej);\n });\n if (thing.type === 'Concept') {\n if (framework.relation == null) {\n framework.relation = [];\n }\n let isNew = true;\n let idx = 0;\n while (isNew && idx < framework.relation.length) {\n if (EcRemoteLinkedData.trimVersionFromUrl(framework.relation[idx]).equals(r.id)) {\n isNew = false;\n }\n idx++;\n }\n if (isNew) {\n framework.relation.push(r.id);\n }\n } else {\n framework.addRelation(r.id);\n }\n }\n edits.push({operation: \"update\", id: framework.shortId(), fieldChanged: [\"relation\"], initialValue: [initialRelations], changedValue: [framework.relation]});\n this.$store.commit('editor/addEditsToUndo', edits);\n this.$store.commit('editor/framework', framework);\n if (this.$store.state.editor.private === true && EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n window.repo.saveTo(framework, resolve, reject);\n });\n },\n addRelationAsCompetencyField: async function(targets, thing, relationType, allowSave) {\n return new Promise(async(resolve, reject) => {\n var initialValue = thing[relationType] ? thing[relationType].slice() : null;\n for (var i = 0; i < targets.length; i++) {\n if (thing[relationType] == null) {\n thing[relationType] = [];\n }\n thing[relationType].push(targets[i]);\n }\n this.$store.commit('editor/addEditsToUndo', [{operation: \"update\", id: thing.shortId(), fieldChanged: [relationType], initialValue: [initialValue], changedValue: [thing[relationType]]}]);\n thing[\"schema:dateModified\"] = new Date().toISOString();\n if (this.$store.state.editor.private === true) {\n if (EcEncryptedValue.encryptOnSaveMap[thing.id] !== true) {\n thing = await EcEncryptedValue.toEncryptedValue(thing);\n }\n }\n window.repo.saveTo(thing, resolve, reject);\n });\n },\n removeRelationFromFramework: async function(source, property, target) {\n return new Promise((resolve, reject) => {\n var me = this;\n var initialRelations = this.framework.relation ? this.framework.relation.slice() : null;\n var edits = [];\n new EcAsyncHelper().each(this.framework.relation, function(relation, callback) {\n EcAlignment.get(relation, function(r) {\n if (property === \"broadens\") {\n if (r.target === source && r.source === target && r.relationType === \"narrows\") {\n me.framework.removeRelation(r.shortId());\n edits.push({operation: \"delete\", obj: r});\n me.conditionalDelete(r.shortId());\n callback();\n } else {\n callback();\n }\n } else if (r.source === source && r.target === target && r.relationType === property) {\n me.framework.removeRelation(r.shortId());\n edits.push({operation: \"delete\", obj: r});\n me.conditionalDelete(r.shortId());\n callback();\n } else {\n callback();\n }\n }, callback);\n }, async function() {\n var framework = me.framework;\n edits.push({operation: \"update\", id: framework.shortId(), fieldChanged: [\"relation\"], initialValue: [initialRelations], changedValue: [framework.relation]});\n me.$store.commit('editor/framework', framework);\n me.$store.commit('editor/addEditsToUndo', edits);\n if (me.$store.state.editor.private === true && EcEncryptedValue.encryptOnSaveMap[framework.id] !== true) {\n framework = await EcEncryptedValue.toEncryptedValue(framework);\n }\n window.repo.saveTo(framework, resolve, reject);\n });\n });\n },\n ceasnRegistryUriTransform: function(uri) {\n var endpoint = null;\n if (this.$store.getters['editor/queryParams'] && (this.$store.getters['editor/queryParams'].newObjectEndpoint)) {\n endpoint = this.queryParams.newObjectEndpoint;\n }\n if (endpoint == null) {\n return uri;\n }\n if (uri.startsWith(endpoint)) {\n return uri;\n }\n var ctid = this.getCTID(uri);\n if (endpoint.indexOf(\"ce-\") !== -1) {\n ctid = ctid.substring(3);\n }\n return endpoint + ctid;\n },\n getCTID: function(uri) {\n var uuid = null;\n var parts = EcRemoteLinkedData.trimVersionFromUrl(uri).split(\"/\");\n uuid = parts[parts.length - 1];\n uri = EcRemoteLinkedData.trimVersionFromUrl(uri);\n if (!uuid.matches(\"^(ce-)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")) {\n uuid = new UUID(3, \"nil\", uri).format();\n }\n if (uuid.indexOf(\"ce-\") === -1) {\n uuid = \"ce-\" + uuid;\n }\n return uuid;\n },\n canViewCommentsCurrentFramework: function() {\n // TODO expand on this\n let lop = this.$store.state.user.loggedOnPerson;\n if (lop && lop.id && lop.id !== '') return true;\n else return false;\n },\n canAddCommentsCurrentFramework: function() {\n // TODO expand on this\n let lop = this.$store.state.user.loggedOnPerson;\n if (lop && lop.id && lop.id !== '') return true;\n else return false;\n },\n toPrettyDateString: function(dateInMilliseconds) {\n try {\n let d = new Date(dateInMilliseconds);\n return dateFormat(d, \"mm/dd/yy, h:MM:ss TT\");\n } catch (err) {\n return 'unknown';\n }\n }\n }\n};","/* (ignored) */","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.5f527677.js.map.gz b/js/app.20343a4f.js.map.gz similarity index 55% rename from js/app.5f527677.js.map.gz rename to js/app.20343a4f.js.map.gz index 1eb14352a..bbd648b9d 100644 Binary files a/js/app.5f527677.js.map.gz and b/js/app.20343a4f.js.map.gz differ