-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtodo
More file actions
154 lines (151 loc) · 8.2 KB
/
todo
File metadata and controls
154 lines (151 loc) · 8.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
OLD TODO:
- Move the logic that takes the Path into account for the query into
GenerateQuery
- Make sure that the Path entity is always in the result set when filtering
- twiddle the self and XXXUrls to include proper filter and inline stuff
- see if we can get rid of the recursion stuff
- should we add "/" to the end of the Path for non-collections, then
we can just look for PATH/% and not PATH + PATH/%
- can we set the registry's path to "" instead of NULL ?? already did, test it
- add support for boolean types (set/get/filter)
TODOs:
- add tests for multiple registries at the same time
- test filtering for (non)empty values - e.g. filter=id= filter=id
- empty complex types too
- test for filtering case-insensitive string compares
- test for filtering with string being part of value
- test for exact match of numerics, bools
- add complex filters testcases
- copy all of the types tests in http from Reg to groups, resources and vers
- test to make sure an ID in the body == ID in URL for reg and group
- test to ensure we can do 2 tx at the same time
- need to decide on the best tx isolation level
- add http test for maxVersions (already have non-http tests)
- see if we can prepend Path with / or append it with /
- see if we can remove all uses of JustSet except for the few testing cases
where we need to set a property w/o verifying/saving it
- Just see if we can clean-up the Set... stuff in general
- see if we can move "#resource??" into the attributes struct
- fix it so that a failed call to model.Save() (e.g. verify fails) doesn't
invalidate existing local variables. See if we can avoid redownloading the
model from the DB
- make sure we check for uniqueness of IDs - they're case insensitive and
unique within the scope of their parent
- specversion strings compares MUST ignore the patch version #
- pagination
- have DB generate the COLLECTIONcount attributes so people can query over
them and we don't need the code to calculate them (can we due to filters?)
- support overriding spec defined attributes - like "format"
- support changing the model - test for invalid changes
- add tests for immutable attributes
- test filtering on bool attributes where they search for attr=false
- support the resource sticky/default attributes
- remove ?setdefault.. for some apis
- process ?setdefaultversionid flag before we update things
- make sure we support them as http headers too
- support createdat and modifiedat as http headers
- make sure we don't let go http add "content-type" header for docs w/o a value
- add support for PUT / to update the model
- add model tests for typemap - just that we can set via full model updates
- support the DB vanishing for a while
- create an UpdateDefaultVersion func in resource.go to move it from http logic
- allow $meta on hasdoc=false resources
- Split the model.verify stuff so it doesn't verify the data unless asked to
- add support for shortself
- see if we can create a $RESOURCEid SpecProp for Version&Meta level and then
use "$SINGULRid" for everything including Versions, but not Meta
- test that we can't set defaultversionsticky when setdefaultversionsticky=false
- add more tests around defaultversionid/sticky to cover all the variants.
- and include xref twiddling
- verify TestHTTPDelete epoch values are correct
- verify TestHTTPNestedResources epoch values are correct
- verify TestMetaCombos epoch values are correct
- stuff in TestXrefRevert
- make sure if we set defaultversionid=XX w/o sticky, and XX isn't latest,
then we need to flag it as an error. Maybe clear it on Set() if not
provided by a user (and sticky=false), and then at the end if null
calc it, if not null if defVer!=calc value->error??
- support PATCH on capabilities /cap and "cap" attr
- bump registry.epoch when capabilities change
- make meta.readonly a non-readonly attribute if the client is an admin
- by making it mutable and changings it's meta-model
- test cap.maxversions & creating resource type that violate it
- test cap.stickyversions & creating resource type that violate it
- test default values - incuding within objects
- add tests for immutable attributes - in particular extensions
- see if we can add RESOURCEid to Versions so we don't need special logic
to exclude them in the code (e.g. in rID's updatefn and validateobj)
- why are "capabilities" and "model" readonly?
- allow any model change, verify entities
- make sure that maxversions=0 when we only support 1 means sitcky must be false
- require "none" to be in "compats" enum
- support PATCH on collections - fix testcase TestHTTPMissingBody
- test PATCH on collections - in particular versions
- verify readonly attrs are ignored on writes, but readonly resources generate an error
- add tests for POST / and POST /GROUPS/gID with filters and inlining
- compat/compatauth
- find a way to define rules to enforce constraints for extensions w/o making
people write code
- for example
- regexp for attr values
- 2 attributes must be the same( e.g. the envelope attr in msg spec)
- trying to mimize the code someone may need to write to create custom impl
- add xr support to download as individual files
- add tests for model "description", "modelversion" and "compatwith"
- ancestor
- add support for deprecated
- add docs for persistent DB/volume
- add docs for auth via proxy
- add support for setting capabilities.mutable to null and make sure things
aren't editable - like capabilities, model, entities
- add all attributes to the model, including model/caps/COLLETIONS/RESOURCE/..
- test to make sure we either override or error when someone tries to define
an extension that looks like COLLECTION/url/count or shortself, etc..
- test to make sure we set ancestor correctly when server assigns the version
ID. `ancestor=request`
- test/support "target" using `/GROUPS/RESOURCES[/versions]` - meaning it
can point to a resource or a version
- support <, <=, >, >=, <>, !=
- make sure * can't be used when using <, >... just =, <> and !=
- case insensitive compares
- support "versionmode"
- clean-up the patch/merging of capabilities, logic isn't clean/optimal
- support patch / + capabilities - does patching of capabilities
- support patch / + modelsource - full replacement
- support "xr model group/resource create/update" with "--data"
- make sure that * can appear in any string capability
- xr model group/resource update
- add support for setversionid, and flag an error when not allowed
- generate an error when setdefaultversionidsticky is false but they try
to set it
- support min/max in capabilities
- support ximportresource being transitive
- add tests for xr model resource create --flags
- add tests for groups.deprecated
- support for modelsource=null or {} - erase everything
- UI: when hasdoc=true and we're in /meta, the URL to its parent (in the breadcrumbs) should have $details - maybe
- UI: add support for wrapping the output text (style=text-wrap=wrap)
- Send back Allow header on a 405 error
- support OPTIONS
- block editing to APIs based on capabilities.mutability
- block access to APIs based on capabilities.APIs
- make tests so they don't use model.verifyandsave - should go thru modelsource
- make model changes via API show up in modelsource
- ban model changes that turn on hasDoc if Resources have RESOURCE* attribute
extension names
- support Link: <URL-TO-XREGISTRY-ROOT>;rel=xregistry-root http header
- make sure ?defaultversionid only processed on write ops (bad_flag)
- look for more bad_request error that we can specialize
- add tests for setting modelsource with $include stuff - and upload data at the same time
- support/test ignore=readonly
- test ?setdefaultversionid in all resource (and deeper) APIs
- add more tests for our resource processing logic
- fix 'xr' so that they can use --data to upload doc & --add for xreg metadata
- test export & import - include readonly and xref resources
- make sure the export/import flow is as UX friendly as possible
- what should "xr create /" do? fail due to the reg already existing? import?
- support ?ignore=id
- make sure we validate (adhere to rfc2119) for capabilities.ignore rules
- capabilities.flags=ignore but capabilities.ignore is missing/empty -> error
- model add matchcase, def=false - remove internals.caseinsensitive
- cmd xr: --ignoreXXX -> --ignore=XXX,YYY