-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtodo
111 lines (108 loc) · 5.76 KB
/
todo
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
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 then 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
- convert internal errors into "panic" so any "error" returned is a user error
- 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
- make sure we throw an error if ?specversion on HTTP requests specifies the
wrong 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
- support ximport
- support validating that xref points to the same resource def
- 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.sticky & 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
- use spec define error message
- 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
- FindXIDResource -> FindResourceByXID
- add support for deprecated
- finish /proxy stuff - lots of bad urls on html
- 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/..