1
votes

I'm a newbee working on rally custom pages and have a question about the rally model type.

For example, when setting a storeConfig like below:

storeConfig : {
    autoLoad : true,
    model : 'UserStory'
}

where is the model type name from? how to get the full list of the valid model type names?

I have tried to go through the online docs but couldn't find any information about this. Also it seems that "User story" is also a valid model name.

In the Web Services API Documentation, it seems that HierarchicalRequirment is for user story. but I couldn't find any information about this in the doc.

1

1 Answers

2
votes

The models should map to their API - however, one trick you can use is to open your console when logged into the Rally site. Once you get to any of their newer pages, you should be able to see all the Models that are loaded up:

for (model in Rally.data.wsapi.ModelFactory._modelCache) console.log(model);

which gives me something like:

> rally.domain.v2.x.project.XXXXXXXX.testcasestep
> rally.domain.v2.x.project.XXXXXXXX.testcase
> rally.domain.v2.x.project.XXXXXXXX.portfolioitemfeature
> rally.domain.v2.x.project.XXXXXXXX.userprofile
> rally.domain.v2.x.project.XXXXXXXX.buildmetric
> rally.domain.v2.x.project.XXXXXXXX.conversationpost
> rally.domain.v2.x.project.XXXXXXXX.defect
> rally.domain.v2.x.project.XXXXXXXX.defectsuite
> rally.domain.v2.x.project.XXXXXXXX.milestone
> rally.domain.v2.x.project.XXXXXXXX.projectpermission
> rally.domain.v2.x.project.XXXXXXXX.portfolioiteminitiative
> rally.domain.v2.x.project.XXXXXXXX.user
> rally.domain.v2.x.project.XXXXXXXX.artifactnotification
> rally.domain.v2.x.project.XXXXXXXX.testset
> rally.domain.v2.x.project.XXXXXXXX.tag
> rally.domain.v2.x.project.XXXXXXXX.workspacepermission
> rally.domain.v2.x.project.XXXXXXXX.scmrepository
> rally.domain.v2.x.project.XXXXXXXX.preference
> rally.domain.v2.x.project.XXXXXXXX.portfolioitemtheme
> rally.domain.v2.x.project.XXXXXXXX.portfolioitem
> rally.domain.v2.x.project.XXXXXXXX.revision
> rally.domain.v2.x.project.XXXXXXXX.changeset
> rally.domain.v2.x.project.XXXXXXXX.iteration
> rally.domain.v2.x.project.XXXXXXXX.change
> rally.domain.v2.x.project.XXXXXXXX.workspaceconfiguration
> rally.domain.v2.x.project.XXXXXXXX.attachment
> rally.domain.v2.x.project.XXXXXXXX.scopedattributedefinition
> rally.domain.v2.x.project.XXXXXXXX.state
> rally.domain.v2.x.project.XXXXXXXX.task
> rally.domain.v2.x.project.XXXXXXXX.hierarchicalrequirement
> rally.domain.v2.x.project.XXXXXXXX.workspace
> rally.domain.v2.x.project.XXXXXXXX.timeentryitem
> rally.domain.v2.x.project.XXXXXXXX.testcaseresult
> rally.domain.v2.x.project.XXXXXXXX.weblinkdefinition
> rally.domain.v2.x.project.XXXXXXXX.attachmentcontent
> rally.domain.v2.x.project.XXXXXXXX.testfolder
> rally.domain.v2.x.project.XXXXXXXX.attributedefinition
> rally.domain.v2.x.project.XXXXXXXX.releasecumulativeflowdata
> rally.domain.v2.x.project.XXXXXXXX.iterationcumulativeflowdata
> rally.domain.v2.x.project.XXXXXXXX.timeentryvalue
> rally.domain.v2.x.project.XXXXXXXX.typedefinition
> rally.domain.v2.x.project.XXXXXXXX.build
> rally.domain.v2.x.project.XXXXXXXX.project
> rally.domain.v2.x.project.XXXXXXXX.allowedattributevalue
> rally.domain.v2.x.project.XXXXXXXX.blocker
> rally.domain.v2.x.project.XXXXXXXX.allowedqueryoperator
> rally.domain.v2.x.project.XXXXXXXX.preliminaryestimate
> rally.domain.v2.x.project.XXXXXXXX.release
> rally.domain.v2.x.project.XXXXXXXX.buildmetricdefinition
> rally.domain.v2.x.project.XXXXXXXX.recyclebinentry
> rally.domain.v2.x.project.XXXXXXXX.subscription
> rally.domain.v2.x.project.XXXXXXXX.useriterationcapacity
> rally.domain.v2.x.project.XXXXXXXX.builddefinition
> rally.domain.v2.x.project.XXXXXXXX.revisionhistory
> rally.domain.v2.x.project.XXXXXXXX.administratableproject
> rally.domain.v2.x.project.XXXXXXXX.writableproject
> rally.domain.v2.x.workspace.XXXXXXXX.testcasestep
> rally.domain.v2.x.workspace.XXXXXXXX.testcase
> rally.domain.v2.x.workspace.XXXXXXXX.portfolioitemfeature
> rally.domain.v2.x.workspace.XXXXXXXX.userprofile
> rally.domain.v2.x.workspace.XXXXXXXX.buildmetric
> rally.domain.v2.x.workspace.XXXXXXXX.conversationpost
> rally.domain.v2.x.workspace.XXXXXXXX.defect
> rally.domain.v2.x.workspace.XXXXXXXX.defectsuite
> rally.domain.v2.x.workspace.XXXXXXXX.milestone
> rally.domain.v2.x.workspace.XXXXXXXX.projectpermission
> rally.domain.v2.x.workspace.XXXXXXXX.portfolioiteminitiative
> rally.domain.v2.x.workspace.XXXXXXXX.user
> rally.domain.v2.x.workspace.XXXXXXXX.artifactnotification
> rally.domain.v2.x.workspace.XXXXXXXX.testset
> rally.domain.v2.x.workspace.XXXXXXXX.tag
> rally.domain.v2.x.workspace.XXXXXXXX.workspacepermission
> rally.domain.v2.x.workspace.XXXXXXXX.scmrepository
> rally.domain.v2.x.workspace.XXXXXXXX.preference
> rally.domain.v2.x.workspace.XXXXXXXX.portfolioitemtheme
> rally.domain.v2.x.workspace.XXXXXXXX.portfolioitem
> rally.domain.v2.x.workspace.XXXXXXXX.revision
> rally.domain.v2.x.workspace.XXXXXXXX.changeset
> rally.domain.v2.x.workspace.XXXXXXXX.iteration
> rally.domain.v2.x.workspace.XXXXXXXX.change
> rally.domain.v2.x.workspace.XXXXXXXX.workspaceconfiguration
> rally.domain.v2.x.workspace.XXXXXXXX.attachment
> rally.domain.v2.x.workspace.XXXXXXXX.scopedattributedefinition
> rally.domain.v2.x.workspace.XXXXXXXX.state
> rally.domain.v2.x.workspace.XXXXXXXX.task
> rally.domain.v2.x.workspace.XXXXXXXX.hierarchicalrequirement
> rally.domain.v2.x.workspace.XXXXXXXX.workspace
> rally.domain.v2.x.workspace.XXXXXXXX.timeentryitem
> rally.domain.v2.x.workspace.XXXXXXXX.testcaseresult
> rally.domain.v2.x.workspace.XXXXXXXX.weblinkdefinition
> rally.domain.v2.x.workspace.XXXXXXXX.attachmentcontent
> rally.domain.v2.x.workspace.XXXXXXXX.testfolder
> rally.domain.v2.x.workspace.XXXXXXXX.attributedefinition
> rally.domain.v2.x.workspace.XXXXXXXX.releasecumulativeflowdata
> rally.domain.v2.x.workspace.XXXXXXXX.iterationcumulativeflowdata
> rally.domain.v2.x.workspace.XXXXXXXX.timeentryvalue
> rally.domain.v2.x.workspace.XXXXXXXX.typedefinition
> rally.domain.v2.x.workspace.XXXXXXXX.build
> rally.domain.v2.x.workspace.XXXXXXXX.project
> rally.domain.v2.x.workspace.XXXXXXXX.allowedattributevalue
> rally.domain.v2.x.workspace.XXXXXXXX.blocker
> rally.domain.v2.x.workspace.XXXXXXXX.allowedqueryoperator
> rally.domain.v2.x.workspace.XXXXXXXX.preliminaryestimate
> rally.domain.v2.x.workspace.XXXXXXXX.release
> rally.domain.v2.x.workspace.XXXXXXXX.buildmetricdefinition
> rally.domain.v2.x.workspace.XXXXXXXX.recyclebinentry
> rally.domain.v2.x.workspace.XXXXXXXX.subscription
> rally.domain.v2.x.workspace.XXXXXXXX.useriterationcapacity
> rally.domain.v2.x.workspace.XXXXXXXX.builddefinition
> rally.domain.v2.x.workspace.XXXXXXXX.revisionhistory
> rally.domain.v2.x.workspace.XXXXXXXX.administratableproject
> rally.domain.v2.x.workspace.XXXXXXXX.writableproject
> rally.domain.v2.x.workspace.null.testcasestep
> rally.domain.v2.x.workspace.null.testcase
> rally.domain.v2.x.workspace.null.portfolioitemfeature
> rally.domain.v2.x.workspace.null.userprofile
> rally.domain.v2.x.workspace.null.buildmetric
> rally.domain.v2.x.workspace.null.conversationpost
> rally.domain.v2.x.workspace.null.defect
> rally.domain.v2.x.workspace.null.defectsuite
> rally.domain.v2.x.workspace.null.milestone
> rally.domain.v2.x.workspace.null.projectpermission
> rally.domain.v2.x.workspace.null.portfolioiteminitiative
> rally.domain.v2.x.workspace.null.user
> rally.domain.v2.x.workspace.null.artifactnotification
> rally.domain.v2.x.workspace.null.testset
> rally.domain.v2.x.workspace.null.tag
> rally.domain.v2.x.workspace.null.workspacepermission
> rally.domain.v2.x.workspace.null.scmrepository
> rally.domain.v2.x.workspace.null.preference
> rally.domain.v2.x.workspace.null.portfolioitemtheme
> rally.domain.v2.x.workspace.null.portfolioitem
> rally.domain.v2.x.workspace.null.revision
> rally.domain.v2.x.workspace.null.changeset
> rally.domain.v2.x.workspace.null.iteration
> rally.domain.v2.x.workspace.null.change
> rally.domain.v2.x.workspace.null.workspaceconfiguration
> rally.domain.v2.x.workspace.null.attachment
> rally.domain.v2.x.workspace.null.scopedattributedefinition
> rally.domain.v2.x.workspace.null.state
> rally.domain.v2.x.workspace.null.task
> rally.domain.v2.x.workspace.null.hierarchicalrequirement
> rally.domain.v2.x.workspace.null.workspace
> rally.domain.v2.x.workspace.null.timeentryitem
> rally.domain.v2.x.workspace.null.testcaseresult
> rally.domain.v2.x.workspace.null.weblinkdefinition
> rally.domain.v2.x.workspace.null.attachmentcontent
> rally.domain.v2.x.workspace.null.testfolder
> rally.domain.v2.x.workspace.null.attributedefinition
> rally.domain.v2.x.workspace.null.releasecumulativeflowdata
> rally.domain.v2.x.workspace.null.iterationcumulativeflowdata
> rally.domain.v2.x.workspace.null.timeentryvalue
> rally.domain.v2.x.workspace.null.typedefinition
> rally.domain.v2.x.workspace.null.build
> rally.domain.v2.x.workspace.null.project
> rally.domain.v2.x.workspace.null.allowedattributevalue
> rally.domain.v2.x.workspace.null.blocker
> rally.domain.v2.x.workspace.null.allowedqueryoperator
> rally.domain.v2.x.workspace.null.preliminaryestimate
> rally.domain.v2.x.workspace.null.release
> rally.domain.v2.x.workspace.null.buildmetricdefinition
> rally.domain.v2.x.workspace.null.recyclebinentry
> rally.domain.v2.x.workspace.null.subscription
> rally.domain.v2.x.workspace.null.useriterationcapacity
> rally.domain.v2.x.workspace.null.builddefinition
> rally.domain.v2.x.workspace.null.revisionhistory
> rally.domain.v2.x.workspace.null.administratableproject
> rally.domain.v2.x.workspace.null.writableproject

So I know I can request a model of defectsuite since they use it internally themselves.

User stories are a bit funky because they map to the Hierarchical Requirement type in the API. You can sort of see this from the browser console when logged into Rally:

a = Ext4.create('Rally.data.wsapi.Store',{
    autoLoad : true,
    model : 'hierarchicalrequirement'
});
b = Ext4.create('Rally.data.wsapi.Store',{
    autoLoad : true,
    model : 'Userstory'
});
a.data.getAt(0).id == b.data.getAt(0).id //true

I did a small amount of testing and it looks like they strip spaces from the model names, so this would also work for the b variable above:

b = Ext4.create('Rally.data.wsapi.Store',{
    autoLoad : true,
    model : 'User   sto     ry    '
})