Commit Graph

261 Commits

Author SHA1 Message Date
63ff325068
find/fix more fmt errors 2023-08-05 13:29:23 -07:00
c18de40edd
remove git version info 2023-08-05 13:29:07 -07:00
d04e7b22e4
remove root pem - should no longer need this 2023-08-05 13:24:48 -07:00
e49ed1b7ad
found fix for comptime decl stuff, avoid more codegen changes 2023-08-05 13:00:55 -07:00
e5b3f03681
fix compile errors on date.zig 2023-08-05 13:00:19 -07:00
5ee53a493d
some codegen changes needed/investigation into http_query (see note)
This fixes main compile issues. Problems that remain:

* json is borked for objects with key/value keys that need to be coerced
* currently all request structures need an http_query declaration, and this may be a hard requirement
* need to revisit all the places where we are reading http response bodies
* there are 35 compile errors that do not have reference traces and will take a while to track down
2023-08-05 12:41:04 -07:00
e3ec2b8c2e
delete duplicate test 2023-08-04 16:42:38 -07:00
5be18af930
upgrade servicemodel.zig 2023-08-04 16:39:15 -07:00
46cc57ac2d
upgrade json.zig (this needs revisiting) 2023-08-04 16:38:49 -07:00
9f5c380b66
upgrade date.zig 2023-08-04 16:38:19 -07:00
e6f7ab003d
zig fmt to take care of easy stuff 2023-08-04 10:07:58 -07:00
cfdf4a3141
these are old changes, but I believe part of 0.11 from a while back 2023-08-04 10:06:54 -07:00
8d852e8084
handle s3 key paths
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-29 09:24:16 -07:00
a662f6f674
add S3 integration test/update readme
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-05 18:34:39 -07:00
247a236ad1
reduce debug logging noise 2022-06-05 18:27:36 -07:00
b428029cc1
add http payload support 2022-06-05 18:27:10 -07:00
21b04317bd
add header parsing support 2022-06-05 18:26:42 -07:00
723c483544
add english date parsing option 2022-06-05 18:23:51 -07:00
d3a7edcadc
change verbosity levels to remove more noise 2022-06-05 18:23:16 -07:00
e34a0d8ff4
comment failing integration demo
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-31 19:25:06 -07:00
ab1060b145
s3 listallbuckets/putobject working
Some checks failed
continuous-integration/drone/push Build is failing
2022-05-31 18:47:59 -07:00
b9aaffb08d
add s3 exception for virtual host addressing 2022-05-29 14:12:01 -07:00
c531164cfa
cleanup and refactoring. Addressed TODO related to comptime eval 2022-05-29 12:49:02 -07:00
03f7228662
fix rest_xml_no_input integration test 2022-05-29 11:16:55 -07:00
08c2ed0c07
move json detection to separate function 2022-05-29 11:13:05 -07:00
357c583e9b
rest_xml support, minus s3
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-28 20:18:16 -07:00
73d056e845
support customization for cloudfront 2022-05-28 18:05:13 -07:00
652a04d0c3
handle greedy labels 2022-05-28 18:02:31 -07:00
46e3a4de11
add additional request id for CloudFront 2022-05-28 18:01:49 -07:00
fed45c90ee
tolerate unwrapped xml response values 2022-05-28 17:57:35 -07:00
c1880e2d43
document the other compiler bug test 2022-05-28 15:50:38 -07:00
51232cb45e
get more defensive from compiler bugs 2022-05-28 15:50:07 -07:00
e4e5288ef6
work around another compiler bug 2022-05-28 15:49:17 -07:00
f9cf8de76f
initial S3 support
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-25 15:27:13 -07:00
e6d2559b80
add x-amz-content-sha256 to all requests
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-25 14:24:56 -07:00
0e46bb04b2
add ec2 query with input demo
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-25 11:38:34 -07:00
8727a4e038
EC2 support
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-16 14:14:54 -08:00
714e7278fd
ensure logging statements are using scoped log 2022-02-16 14:04:06 -08:00
b2c915f400
dealloc on error (using a blunt instrument) and iso8601 support 2022-02-16 14:01:29 -08:00
b44ea5c3e8
add iso8601 string to timestamp 2022-02-16 13:47:19 -08:00
4b26bc884f
basic ISO8601 parsing 2022-02-16 13:45:41 -08:00
fc8a73a9c4
handle times before 1970 2022-02-15 17:28:27 -08:00
49f3f48aa8
conversion from DateTime structure to timestamp (partial)
This only handles dates after 1970. The code
is getting ugly and I think it is the wrong approach.
Will clean up in the next commit
2022-02-15 17:03:42 -08:00
0706dd5e6f
work around zig compiler bug
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-11 13:36:38 -08:00
8e9b85b35f
make for easier EC2 Query development
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-11 09:28:24 -08:00
bb93f41b85
add xml_shaper (see below)
This will use the Vulkan xml parser to parse data, then
massage that into a passed type. It uses code patterned
off the standard library Json parser to do the work.

The final, commented test is exposing a compiler bug that
needs to be reduced and sent to the zig team. Initial reports
from IRC indicate that the team is not focusing on compiler
bugs until stage 2 is done (hopefully May 2022)
2022-02-11 09:22:32 -08:00
240d2ebdd1
new EC2 code (still failing/disabled) 2022-02-11 09:17:27 -08:00
f374df3fa1
update generated models for xml mappings 2022-02-10 15:13:44 -08:00
744d834cfd
add predicate option to xml parser 2022-02-10 15:07:50 -08:00
c9369504fa
re-import xml.zig from Vulkan project 2022-02-10 10:20:00 -08:00
5bb382bda3
implement container credentials
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-09 11:46:53 -08:00
5f3a201ffd
initial IMDSv2 implementation
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-08 22:37:38 -08:00
628dd1da1d
replace zero with crypto secureZero 2022-02-08 22:37:20 -08:00
b53cbc3ea5
support file-based credentials
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-31 09:01:30 -08:00
6229644bca
update zero process to secureZero 2022-01-31 09:01:01 -08:00
e7734281c3
add comment about AWS_SECURITY_TOKEN 2022-01-21 06:41:10 -08:00
a88995290c
switch query_with_input test to something that will work with STS token
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-21 06:15:48 -08:00
a667dc09d1
support for STS tokens
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-20 19:42:55 -08:00
65537613e1
fix signing tests
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-20 12:58:56 -08:00
7967d7e3ab
fix signing tests
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-20 12:53:29 -08:00
d4c9f22316
32 bit support
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-20 12:31:45 -08:00
691a32d719
credential cleanup/working on Windows
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-20 12:18:47 -08:00
3d27b84e2d
include query in url 2022-01-20 07:32:40 -08:00
46685043e5
enable query string in canonical request 2022-01-20 07:32:26 -08:00
a05c1dfa10
remove debug output of signing key 2022-01-20 07:31:32 -08:00
1fd42fbe84
fixed signature issue with rest_json_1_work_with_lambda
All checks were successful
continuous-integration/drone/push Build is passing
There remains another issue with this same test, dealing with query string
2022-01-19 21:40:38 -08:00
014f739b09
clean up comments
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-19 21:22:25 -08:00
be42b07086
add tls trust chain for AWS
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-19 21:17:44 -08:00
e66c82468a
most requests working (see below)
All checks were successful
continuous-integration/drone/push Build is passing
rest_json_1_work_with_lambda seems to fail
STS-generated keys not working
there might be an intermittent signature failure
2022-01-19 19:29:58 -08:00
acba4d7962
remove completed TODOs from test
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-19 19:14:24 -08:00
3e9fab6ca5
return new request instead of mutating in place
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-19 19:12:50 -08:00
b928a5ec21
query_no_input working (intermittent failure?)
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-19 18:58:53 -08:00
b753c4e441
import canonicalization test from aws-c-auth 2022-01-19 13:53:35 -08:00
c7544b930b
add initial signing implementation
Some checks failed
continuous-integration/drone/push Build is failing
This is producing a value, but not yet sure if these
are correct values
2022-01-19 10:54:23 -08:00
9880aa0ba9
date.zig tweaks 2022-01-17 18:52:27 -08:00
8d36300f27
initial implementation - canonical request
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-17 17:28:43 -08:00
a01c01522c
add date "library". Thanks @WoodyAtHome! 2022-01-17 17:27:59 -08:00
8cc3059744
successful requests - needs sig implementation 2022-01-17 13:45:10 -08:00
a3967b8652
case insensitive header search 2022-01-17 13:44:29 -08:00
2793e1e17b
drone support for versionstep
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-12 17:42:54 -08:00
7505d87bf1
implementation of addHeaders
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-12 17:22:51 -08:00
9fd6755684
add version info to main output
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-12 17:01:37 -08:00
a5b78384f5
build works, c_allocator no longer required 2022-01-12 09:18:16 -08:00
042dfad64b
rename awshttp 2022-01-11 16:55:42 -08:00
eb449eabb0
dig out aws crt. project no longer builds
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-10 21:49:59 -08:00
1c41737202
upgrade to zig 0.9.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-03 08:06:14 -08:00
687880f27e
free requests in demo 2021-09-06 15:48:10 -07:00
d02272d12c
proper path/query support for REST v1
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-05 14:33:33 -07:00
c80a65ed50
add ability to have custom stringification 2021-09-05 14:32:52 -07:00
8ec16dbb1d
set signature options to something mostly appropriate (grr S3) 2021-09-02 15:43:02 -07:00
98b0c4127f
add generic dump function - handy for printf debugging 2021-09-02 15:41:14 -07:00
87116cb69e
support requests with bodies/responses without 2021-09-02 15:40:16 -07:00
535205e947
fix query args (http_query is a decl, not a field)
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-01 08:58:25 -07:00
3005e07cee
fix servicemodel test
Some checks failed
continuous-integration/drone/push Build is failing
2021-09-01 08:27:58 -07:00
c7c5a0233c
switch to comptime array of strings for delete
Some checks failed
continuous-integration/drone/push Build is failing
2021-09-01 07:13:42 -07:00
9f58076bac
add service_meta as struct const
Some checks failed
continuous-integration/drone/push Build is failing
2021-08-24 17:13:45 -07:00
7f178bcc91
provide ability to handle requests built at runtime
Some checks failed
continuous-integration/drone/push Build is failing
This commit adds a new interface that is capable of runtime
use. By calling Request(action).call(request, options), the request
object can now be built at runtime. This change also moves the client
object into the options structure. It also moves the metaInfo generated
function to a type-based function rather than requiring an instance for
binding.
2021-08-24 17:02:28 -07:00
866a68777e
teach json parsing about map patterns
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-23 13:37:40 -07:00
5c5f23eb26
skip value of field when field is unused (ported in from zig master) 2021-08-23 10:16:22 -07:00
8e853e9a82
rest json v1 basic requests (responses tbd)
All checks were successful
continuous-integration/drone/push Build is passing
This provides initial implementation with some basic calls
working. Only GET requests have been verified so far.
Http header support missing. POST/PUT might work, but
have not been tested. Currently the demo tests are
failing due to a response deserialization issue that
is still being debugged
2021-08-13 18:12:05 -07:00
17b0ae9551
provide smithy-based json serialization for request data
All checks were successful
continuous-integration/drone/push Build is passing
This will use the actual structure name or the override
from the trait as needed. Return value support
is also enabled in the code generation but not in
aws.zig. The current fuzzy checks should get most
of the way there though
2021-08-13 10:28:29 -07:00
5c29120a44
initial json 1.1 support
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-12 17:51:47 -07:00
f21ce40186
include proper service name and use it 2021-08-12 17:51:07 -07:00
81cc6a8cde
fix query tests by consistently allocating requestid
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-12 17:05:30 -07:00
00b2ab3d27
initial support for json 1.0 2021-08-12 14:24:24 -07:00
86751f22e9
adjust type for new casing code
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-27 09:40:11 -07:00
34b803c7dc
support for EC2Query protocol requests (response is XML and not yet implemented)
Some checks failed
continuous-integration/drone/push Build is failing
2021-07-24 00:25:53 -07:00
93c461fcc0
fix leaked memory on errors due to sentinal on concatenated data 2021-07-24 00:23:58 -07:00
da9eae4876
add headers to returned response 2021-07-24 00:23:06 -07:00
4bca7eba8f
add query string capabilities/move to request object 2021-07-24 00:22:06 -07:00
a97e26477d
support for single word handling in camelCase algo 2021-07-24 00:18:38 -07:00
079677bb2e
set higher branch quota - describeInstances needs plenty 2021-07-24 00:17:39 -07:00
f0fe3bbb94
add ec2 test 2021-07-24 00:17:09 -07:00
dfa0be60b9
update code generation without containing struct
Some checks failed
continuous-integration/drone/push Build is failing
Instead we will rely here on the implicit struct provided by the file
itself. This means that when the service_manifest.zig import is
assigned, we don't end up with a construct like "manifest.sts.sts" to
get to the sts service. This simplifies greatly the way that
servicemodel.zig needs to behave.

One down side, however, is that the structure does not seem
accessible with the current zig language, making metaInfo unable
to access itself as it did before. Or maybe it can, I just can't find
it. So, this change also adds a new "service_metadata" public constant
with the same declarations being published at the file level, and
that is the new return from the metaInfo function. Our aws.zig
only really needs the action and that metadata, so we're ok with that
even if there is some duplication (we could codegen pointers over, and
maybe should to save a little bit of space).
2021-06-30 13:40:20 -07:00
3c9f91c012
rework servicemodel to avoid comptime_string @import
This method was in violation of the accepted proposal
https://github.com/ziglang/zig/issues/2206
and disallowed in the compiler as of adc2aed,
now in 0.8.0.
2021-06-30 09:21:08 -07:00
dcfefa4072
address zig changes in awshttp. zig 15a030ef3 or newer needed
There are two recent changes in zig that effect awshttp.

1. cf65ab8 disallows unused variables. Fair enough and backward
compatible.
2. https://github.com/ziglang/zig/issues/2115#issuecomment-827968279

This comment resulted in a backward incompatible change to use the
underlying value from a C enum rather than its symbol. This reduces
edge cases in the compiler. Ultimately we may want awshttp to define
zig enums that mirror the C enums, but for now I've commented the
definitions of the C enums used.
2021-06-30 09:14:28 -07:00
aa5b46c046
move codegen out of src - we will handle differently 2021-06-29 17:10:01 -07:00
7dc8e0e938
get all json tests passing with updated zig 0.9.0 (current master)
Key changes:

1. Remove all unused variables (see zig commit cf65ab8)
2. Remove tests requiring other files
3. Specify enum type when providing specific enum values (see zig
commits around 507a8096d)
2021-06-29 14:50:21 -07:00
b2ebc5a621
add snake comparison test 2021-06-23 18:23:56 -07:00
93536aa4ad
make primary executable a more robust integration test harness 2021-06-23 18:23:07 -07:00
06479b8cb7
more useful logging 2021-06-23 18:21:34 -07:00
6f38ecd893
update to new json/url options 2021-06-23 18:20:45 -07:00
77caa626f0
allow parsing of exponential numbers if they resolve to int 2021-06-23 18:18:42 -07:00
c2e2778d77
missing field support (not sure if we will use this) 2021-06-23 18:18:00 -07:00
3d9490de82
fix snake case comparison
code in the function required found variable to be a real count
for allocation purposes, but it was originally coded as a flag
instead, which broke any field with more than two underscores
2021-06-23 18:16:54 -07:00
f816c0cbf1
additional url encoding test cases and virtual rewrite of encoder 2021-06-23 18:14:59 -07:00
9c3fcc5a9d
address memory leaks in awshttp
There appears to be a leak in json.zig, which had minimal modifications for
snake/camel case, including use of an allocator. It is not obvious that
the leaks were added by these changes, so I will leave this issue for
later investigation.
2021-06-18 14:06:58 -07:00
667c38c8d3
add sentinals so we can work until general purpose allocator 2021-06-18 13:48:31 -07:00
2768c83a0a
switch to general purpose allocator so we can weed out leaks 2021-06-18 13:47:27 -07:00
1050ca5222
update documentation and comments 2021-06-18 13:46:23 -07:00
bd3605e387
support request data in query protocol calls
This should complete the query protocol calls. However, there are likely
gaps in implementation for the transformation of request parameters
to url encoded body data
2021-06-14 16:12:55 -07:00
fe7e37b71a
rough out protocol plan 2021-06-12 13:39:26 -07:00
01aa8c8d1a
add http error handling 2021-06-12 13:38:50 -07:00
ad54596837
wire Services through to aws.zig and main demo 2021-06-10 14:35:22 -07:00
7f8ddd3461
set branch quota to allow all services to be processed 2021-06-10 14:23:11 -07:00
f9e6f92026
individual service support - evaluation exceeded 1000 branches 2021-06-10 14:09:22 -07:00
dff03429d9
fix memory leaks/upgrade tests to 0.8.0 2021-06-10 14:05:48 -07:00
e5f5f0e8cd
update code to support compilation with zig 0.8.0 2021-06-09 16:26:42 -07:00
c6dbbf33af
allow different endpoing/sigv4 service names
This seems silly, but I guess in AWS it is a thing that these two values may
be different. Consumers of awshttp have the option of ignoring this, which
should be correct most of the time. Aws.zig will, however, use the service
metadata to do the right thing
2021-06-09 16:25:49 -07:00
bd5d509665
update servicemodel for generated model
This increases compilation time significantly as all 260+ services
need to be analyzed by zig during compilation. I plan to change
the model from a single "services" constant to a function
that will import only services that plan to be used. This
might be in addition to the single constant to allow
consumers to choose short compile times or all services
support
2021-06-09 16:22:44 -07:00
d7efe72f1b
enable compiling under zig 0.8.0 2021-06-09 16:14:44 -07:00
4a10450e0e
add metadata function
This blows up the number of parameters on generateComplexTypeFor
at least this is a private function, but still kinda messay
2021-06-09 16:14:09 -07:00
03ef89a362
use snake case sdk id for member name
There is still a bug in snake_case related to double underscores
2021-06-09 16:10:10 -07:00
578058dfc9
remove newline that disagreed with zig fmt 2021-06-09 16:06:30 -07:00
59638df854
add manifest list (remove -s option) 2021-06-03 17:40:47 -07:00
329d732cd5
switch field names to snake_case 2021-06-03 17:39:38 -07:00
c2710be165
move codegen under src/ 2021-06-03 17:35:14 -07:00
065fc2c838
remove broken code 2021-06-01 14:49:17 -07:00
b1397d896e
move service model to its own file
This will need further refactoring to incorporate genned stuff
2021-05-29 19:33:08 -07:00
a732bc14db
more organization and add some documentation to the awshttp module 2021-05-14 15:12:47 -07:00