UNPKG

36.2 kBMarkdownView Raw
1# Architect changelog
2
3---
4Also see:
5- [Architect Functions changelog](https://github.com/architect/functions/blob/master/changelog.md)
6---
7
8## [6.0.15 - 6.0.16] 2019-10-15
9
10### Changed
11
12- Updated dependencies
13
14
15### Fixed
16
17- Fixes deployment issue if `get /` is not specified in `@http`; resolves @package#27, /ht @grahamb and @jeffreyfate!
18
19
20### Changed
21
22- Improves error states for missing static configs, 404s, etc. when using `@http` and/or `@static` with `arc.http.proxy` or without defining `get /`
23
24---
25
26## [6.0.15] 2019-10-14
27
28### Changed
29
30- Legacy WebSockets paths on the filesystem are now formally deprecated
31 - Your default three WebSockets paths should be: `src/ws/default`, `src/ws/connect`, `src/ws/disconnect`
32 - If you're using legacy WebSockets paths (either `src/ws/ws-default` or `src/ws/ws-$default`), simply remove `ws-[$]` and you should be all set!
33
34
35### Fixed
36
37- Fixed issue when emitting to WebSockets with Arc Functions (`arc.ws.send`); resolves #48, thanks @andybee + @bvkimball!
38- Fixed issue where `sandbox` may not have correctly resolved some custom WebSocket actions
39- Fixed HTTP request with `body` and no `Content-Type` header; resolves #102, thanks @andybee!
40- Fixed issue where killed subprocesses would not trigger timeouts; resolves #30, /ht @mikemaccana
41- Fixed issue where functions with legacy runtimes may not have been fully hydrated
42
43---
44
45## [6.0.14] 2019-10-11
46
47### Added
48
49- Added support for `@static fingerprint true` in root spa / proxy requests
50 - This enables Architect projects to deliver fully fingerprinted static assets while also ensuring that each file is appropriately cached by clients and network infra
51 - Also includes support for build-free calls between your fingerprinted static assets
52 - Example: in `public/index.html`, use the following syntax to automatically replace the local / human-friendly filename reference to the deployed fingerprinted filename:
53 - `${arc.static('image.png')}` will be automatically replaced by `image-a1c3e5.png`
54 - Or `${STATIC('image.png')}` (which is the same thing, but shoutier)
55 - Note: although those look like JS template literal placeholders, they're intended to live inside non-executed, static files within `public/` (or `@static folder foo`)
56
57
58### Changed
59
60- Updated dependencies
61- Ensures html / json are published to S3 with anti-cache headers
62
63
64### Fixed
65
66- Restores static asset pruning (`arc deploy --prune` or `arc deploy --static --prune`)
67- Fixes issues with parsing certain properties in `arc.json`, thanks @mikemaccana!
68- Fixed issue that may prevent `repl` from working in more recent versions
69- Add anti-caching headers to `sandbox` 404 response
70- Fixes root spa / proxy requests when Architect and/or Sandbox are globally installed; resolves #92 /ht @grahamb
71
72---
73
74## [6.0.13] 2019-10-02
75
76### Fixed
77
78- Fixed issue where with `@static fingerprint true` enabled, the `static.json` file would not be copied into deployed functions' shared dirs; thanks @dawnerd + @jgallen23!
79- Removed unnecessary second-order dependency, which should lighten up the Architect install size a bit
80
81
82### Changed
83
84- Updated dependencies
85
86---
87
88## [6.0.11 - 6.0.12] 2019-09-29
89
90### Added
91
92- `sandbox` Auto-hydration received a bunch of nice upgrades:
93 - Auto-hydration now detects changes to the state of your installed Node dependencies, and rehydrates if necessary; for example:
94 - You're working on a project, and a teammate updates a dependency in `get /foo` from version `1.0.0` to `1.1.0`
95 - Upon your next git pull, `sandbox` will detect the dependency update in `get /foo` and automatically install version `1.1.0` for you
96 - Auto-hydration now has a rate limit of one change every 500ms to prevent recursive or aggressive file updates
97 - Auto-hydration now has `@static folder` support
98 - Auto-hydration now only hydrates the shared files necessary
99 - For example: if you change a file in `src/views`, it will only update your `@views` functions, and not attempt to rehydrate all your project's functions with `src/shared`
100 - Events now have a timestamp and improved formatting
101- Beta: `sandbox` init script support!
102 - `sandbox` will now run the init script of your choosing upon startup after all subsystems have started up:
103 - `scripts/sandbox-startup.js` - a CommonJS module, receives your parsed Arc project as a parameter, supports async/await
104 - `scripts/sandbox-startup.py` - a Python script
105 - `scripts/sandbox-startup.rb` - a Ruby script
106- Startup auto-hydration now hydrates `src/views` and `src/shared`
107- Added support for `@static folder` to static asset `fingerprint`ing
108
109
110### Changed
111
112- Improvements to the conditions under which the HTTP server starts, shuts down, and restarts; fixes `sandbox` #65
113- Improved `sandbox` async error copy (displayed when execution does not complete)
114- Proxied requests in `sandbox` now sends a proper `req.resource`, which can resolve some SPA bugs, esp when used with newer Arc Functions
115- `sandbox` now respects and errors on invalid response params for proper Architect 6 compatibility; fixes `sandbox` #49
116- Updates `sandbox` to Dynalite to `3.0.0`, thanks @mhart!
117- Better 404 / file missing handling in `sandbox` when using `http.proxy` (or loading assets without `@http get /` specified)
118- `hydrate --update` now properly inventories its update operations, avoiding superfluous work
119
120
121### Fixed
122
123- Fixes correct inventory paths for `src/ws/*`, which should in turn fix WebSocket function hydration, thanks @mikemaccana!
124- When auto-hydrating functions upon startup, `sandbox` no longer hydrates `src/views` and `src/shared` with each function
125- Fixed issue where `hydrate`'s shared file copying may have leaked across Lambda executions in rare circumstances
126- Fixed undefined message in `hydrate` init
127- Improved `hydrate` error bubbling
128- Formatting and line breaks in `hydrate` printer return should now more closely (or exactly) match console output
129- Fixed issue where in certain circumstances `get /` wouldn't reload `sandbox` after a change to the project manifest
130- Minor fix where if you specified a `SESSION_TABLE_NAME` env var outside of `.arc-env`, `sandbox` won't clobber it
131- Fixed caching headers for various `sandbox` error states (async, timeout, etc.) to ensure your browser won't accidentally cache an error response
132- Fixes issue where binary assets delivered via `sandbox` / root may not be properly encoded
133- Fixes empty mock `context` object encoding
134
135---
136
137## [6.0.10] 2019-09-11
138
139### Changed
140
141- Running `hydrate` now properly inventories its update operations, avoiding superfluous work there as well
142- Results returned by `hydrate` are now symmetrical with what's printed
143- `@http` functions are now provisioned with the `ARC_HTTP` env var, which is set to `aws_proxy`
144
145
146### Fixed
147
148- Fixed `env` to ensure env vars were populated out of the correct region
149- `sandbox.close` will no longer throw an error if project doesn't use `@http` or `@ws`
150- Fixed reliability of `hydrate` and other Architect operations printing in CI containers and other non-TTY environments
151
152---
153
154## [6.0.9] 2019-09-09
155
156### Changed
157
158- Running `hydrate` now properly inventories its install operations, avoiding superfluous work
159
160
161### Fixed
162
163- Fixed issue where `sandbox` would hang if POST requests were sent without a body
164- Fixed `logs` to ensure log data is read out of the correct region
165- Fixed S3 permissions to enable direct asset uploading
166
167---
168
169## [6.0.8] 2019-09-06
170
171### Fixed
172
173- Fixes case where user-defined region may not be respected
174- Fixes provisioning `@scheduled` functions
175
176---
177
178## [6.0.7] 2019-09-05
179
180### Changed
181
182- Add clearer bucket region instructions during init
183
184---
185
186## [6.0.6] 2019-08-30
187
188### Changed
189
190- Internal change; improve error handling states
191
192---
193
194## [6.0.5] 2019-08-28
195
196### Added
197
198- Added initialization confirmation messages
199
200
201### Changed
202
203- Improved boilerplate project files written during initialization
204- Updated boilerplate .arc file initialized
205- Patched vendored proxy bundle to 3.3.7
206- Updated deps
207
208---
209
210## [6.0.4] 2019-08-27
211
212### Changed
213
214- Updated deps
215
216---
217
218## [6.0.3] 2019-08-24
219
220### Fixed
221
222- Internal error handling change
223
224
225### Changed
226
227- Updated deps
228
229---
230
231## [6.0.1 - 6.0.2] 2019-08-22
232
233### Fixed
234
235- Fixes issue with auto-hydration of new dependencies during `sandbox` startup
236- Fixes issue with `arc deploy --static` throwing an unnecessary error after uploading files, fixes #427
237- Fixes minor copy issue in `arc deploy` reporting the incorrect static asset folder when there are no files to deploy
238
239---
240
241## [6.0.0] 2019-08-20
242
243### Changed
244
245- Many things! Updates to this changelog forthcoming shortly. Arc 6.0 is a breaking change, please refer to https://arc.codes and upgrade mindfully!
246
247---
248
249## [5.9.24] 2019-08-05
250
251### Fixed
252
253- Resolves issue where static assets aren't loading from `_static/` in `sandbox`, fixes #416
254
255---
256
257## [5.9.23] 2019-07-23
258
259### Fixed
260
261- Fixed issue preventing Ruby functions from properly executing in `sandbox`
262- Fixed issue prevent Python functions from properly executing in Windows `sandbox`
263- Fix broken characters in Windows `sandbox` console
264- Fixes super obscure bug where certain shared files may not be included in a single function deploy
265
266### Changed
267
268- `sandbox` context now passes an empty object (to be mocked soon!) to all runtimes
269 - This deprecates the legacy AWS implementation of `context` (since retired in production) passed to `sandbox` Node functions
270
271---
272
273## [5.9.21-22] 2019-07-17
274
275### Added
276
277- Adds auto-hydration to new functions without restarting `sandbox`
278
279
280### Fixed
281
282- Fixes issue with auto-hydration on `sandbox` startup
283- Fixes potential issue in static asset deploys in Windows
284
285---
286
287## [5.9.20] 2019-07-15
288
289### Added
290
291- Expanded support for static asset fingerprinting! If you've enabled fingerprinting (`@static fingerprint true`):
292 - `sandbox` will regenerate your `public/static.json` file on startup
293 - And whenever making any changes to your `public/` dir, `sandbox` auto-refresh will automatically regenerate `public/static.json` and re-hydrate your shared files with the latest version
294
295
296### Fixed
297
298- `sandbox` auto-refresh now detects file deletions from `src/shared` and `src/views`
299
300---
301
302## [5.9.19] 2019-07-12
303
304### Added
305
306- Adds PYTHONPATH to `sandbox` Lambda invocation for `/vendor` modules
307
308### Fixed
309
310- Fixes `sandbox` crashing when `get /` and other functions aren't defined in `.arc` or present in the filesystem, but are requested by a client
311- Prevents startup of http server if `@http` isn't defined in `.arc`
312- Improves `sandbox` support in Windows
313
314---
315
316## [5.9.18] 2019-07-12
317
318### Fixed
319
320- Fixes WebSocket provisioning issue
321
322---
323
324## [5.9.17] 2019-07-12
325
326### Changed
327
328- Disables delta resource creation during deployments
329 - This functionality is better served by more reliable and deterministic resource creation via the forthcoming Architect 6 release
330
331---
332
333## [5.9.16] 2019-07-12
334
335### Changed
336
337- Reverts previous breaking change on WebSockets, default directories that get created are now once again `ws-connect`, `ws-default`, and `ws-disconnect`
338
339---
340
341## [5.9.15] 2019-06-26
342
343### Added
344
345- Auto-refresh! `sandbox` now keeps an eye out for the following changes to your project:
346 - Edits to your Architect project manifest will mount or unmount HTTP routes without having to restart `sandbox`
347 - Changes to `src/shared` and `src/views` will automatically rehydrate your functions' shared code
348 - More to come!
349
350
351### Changed
352
353- Prettied up `sandbox` initialization printing a bit
354
355---
356
357## [5.9.14] 2019-06-25
358
359### Added
360
361- Auto-hydration!
362 - Say goodbye to running `npx hydrate` before starting new projects, cloning existing projects, or pulling down new functions
363 - On startup, any functions missing dependencies on the local filesystem will now be auto-hydrated
364 - Supported runtimes and dependency manifests: Node + `package.json` (requires npm >= 5.7), Python + `requirements.txt` (calls pip3), and Ruby + Gemfile (calls bundle)
365
366---
367
368## [5.9.10-13] 2019-06-24
369
370### Fixed
371
372- Ensures `sandbox` starts in the cases of:
373 - No local AWS credentials file (e.g `~/.aws/credentials`)
374 - The local AWS credentials file is present, but is missing the requested profile name
375 - Fixes #382, 391
376- Fixed issue with `hydrate` caused by an errant merge
377
378---
379
380## [5.9.9] 2019-06-23
381
382### Changed
383
384- Projects that use WebSockets (`@ws`) in their `.arc` file will need to be cautious about upgrading
385 - The default directories that get created are now `ws-$connect`, `ws-$default`, and `ws-$disconnect`; it is recommended that you run `npx create` and copy your code from `ws-connect` to `ws-$connect`, `ws-default` to `ws-$default`, and `ws-disconnect` to `ws-$disconnect` and then delete the old directories
386
387### Fixes
388
389- `@ws` directive now works correctly with the `npx inventory` command set
390- Fixes `sandbox` wrapper when use as async module, adds `sandbox` test
391
392---
393
394## [5.9.8] - 2019-06-19
395
396### Changed
397
398- Deployments of static assets now follow symlinks in the `public/` directory
399
400---
401
402## [5.9.5-7] - 2019-06-18
403
404### Changed
405
406- The `sandbox` workflow is now its own module!
407 - No functionality changes to `sandbox` in this release
408 - A few minor improvements to `sandbox` console messages during startup, and drying up port assignment logic
409 - You can find the `sandbox` module at https://github.com/architect/sandbox
410
411
412### Fixed
413
414- Some Arc-supported runtimes defined in `.arc-config` files (such as `nodejs8.10`) will no longer cause `sandbox` to crash
415
416---
417
418## [5.9.4] - 2019-06-15
419
420### Added
421
422- Added ability to disable Architect managing a given function's environment variables
423 - Add an `@arc` pragma to your function's `.arc-config` file, and pass it the `env false` flag
424
425
426---
427
428## [5.9.3] - 2019-05-29
429
430### Fixed
431
432- Corrects URI encoding when accessing local static assets in _static, fixes #390
433- Warns users of static deployments of files approaching the payload limit of Lambda, fixes #387
434- Fixes static deploy errors of unknown file types
435
436
437---
438
439## [5.9.0 - 5.9.2] - 2019-05-23
440
441### Added
442
443- CloudFormation support! 🚀
444 - `npx package` will export the current `.arc` file to `sam.json` and print further instructions for deploying
445 - Currently only `@http`, `@static` and `@tables` pragmas are supported; you can track the other pragmas dev (or submit a PR!) here at #386
446 - Any env vars in `.arc-env` are automatically applied to the CloudFormation stack
447 - `.arc-config` settings are also fully supported
448 - Unfortunately CF currently has a bug with binary media types which we're tracking here https://github.com/awslabs/serverless-application-model/issues/561
449- Static asset fingerprinting beta!
450 - Add `fingerprinting true` to your `@static` pragma to enable fingerprinting
451 - Add `ignore` followed by a two-space indented list to ignore certain files from `public/`
452 - [More information here](https://arc.codes/reference/static)
453- Added new flag for pruning old static assets: `npx deploy [--static] --prune`
454- Added ability to completely disable shared folder copying into functions
455 - Add an `@arc` pragma to your function's `.arc-config` file, and pass it the `shared false` flag
456- Ruby and Python local runtime support
457 - `.arc-config` with `runtime` of either `ruby2.5` or `python3.7` works on localhost (make sure you have python and ruby installed!)
458
459
460### Fixed
461
462- Hydration (and other things that depend on hydrator operations) should now work more reliably on non-UNIXy machines
463
464
465---
466
467## [5.8.7] - 2019-05-21
468
469### Fixed
470
471- Fixes lack of `console.[warn|error|trace]` output in sandbox console
472
473
474## [5.8.5 - 5.8.6] - 2019-05-15
475
476### Changed
477
478- Default Lambda runtime is now Node 10.x (from Node 8.10)
479- Added simple rate limits to `npx config` and `npx config --apply`
480- Updated dependencies
481
482
483---
484
485## [5.8.0 - 5.8.4] - 2019-05-08
486
487### Added
488
489- Adds `npx inventory nuke -f` for deleting DynamoDB tables and S3 buckets (even if they have contents)
490 - Also adds aliases: `npx inventory -nf`, `npx inventory -fn`
491- Scheduled function state enabled / disabled flag in `.arc-config` with `npx config`
492- Concurrency `0-1` flag in `.arc-config` with `npx config` (applies to all function types)
493- Support for custom routes in WebSocket API Gateways
494 - `@ws` now accepts routes defined in `.arc`
495 - To use these custom routes, the client message must contain an `action` key that is the name of the route
496
497
498### Fixed
499
500- DynamoDB tables and indexes now enqueue during create; fixes #268
501- Sync queue visibility to function timeout; fixes #204
502- Verifies queue resources deleted with `npx inventory nuke`; fixes #132
503- Enhanced cron() and rate() validatation; fixes #148
504- Now `npx inventory nuke` destroys Lambdas and CloudWatch Events rules
505- Enhanced error reporting for bad creds or bad arcfiles (closes #339, #364)
506
507
508### Changed
509- New GitHub name! Find us at: [github.com/architect](https://github.com/architect)
510 - If you're already developing for Architect projects, don't forget to update your git remotes, e.g.: `git remote set-url origin https://github.com/architect/architect.git && git remote -v`
511 - Special thanks to @pug132 for the name (and a big hat-tip to @mikemaccana)!
512- scheduled functions always putRule on `npx create` (fixes #326)
513
514
515---
516
517## [5.7.0] - 2019-04-17
518
519### Added
520
521- Support for AWS layers! /ht @julianduque
522 - You may now specify `layer $layerARN` in the `@aws` section of your project manifest, or `.arc-config` files (see: [config](https://arc.codes/reference/arc-config)!
523- Support for additional runtimes: `python3.7` and `ruby2.5`!
524 - The list also includes: `nodejs8.10`, `python3.6`, `go1.x`, `dotnetcore2.1`, and `java8`
525 - Specify `runtime $yourRuntime` in the `@aws` section of your project manifest, or `.arc-config` files
526 - Of course, you can also add the runtime of your choosing by way of layer support
527- Support for `application/binary-octet` & `multipart/form-data` requests, fixes #353
528 - Requests with those two `Content-Type` headers will produce a `base64` object in the `body` object, like so: `body: {base64: 'R28gR2lhbnRzIQ=='}`
529 - Empty request bodies will still produce an empty object (e.g. `body: {}`)
530
531
532### Fixed
533
534- `config [--apply]` now has an easier to read layout, improved diffing, and instructions on how to apply changes
535- Added resource creation error handling and validation to `deploy`
536- Invalid runtime settings emit a friendly warning about defaulting to `node8.10`
537
538
539### Changed
540
541- `get /` no longer required by `@http`
542- Updated dependencies (most notably `@architect/parser` to support `runtime` and `layers` settings)
543- Resource creation error handling moved into common utils (internal)
544
545
546---
547
548
549## [5.6.3] - 2019-04-08
550
551### Fixed
552
553- Fixes WebSocket support in `sandbox`; fixes #328 /ht @rschweizer
554
555
556### Changed
557
558- Cleans up http invocation for doc content-types in `sandbox`
559- Slightly better rate limit error message
560
561
562---
563
564
565## [5.6.1] - 2019-04-06
566
567### Added
568
569- Adds `req.httpMethod` and `req.queryStringParameters`
570
571
572### Removed
573
574- Removes deprecated code paths
575
576
577---
578
579
580## [5.6.0 - 5.6.1] - 2019-04-04
581
582### Added
583
584- Enables both text and binary file transit in newly provisioned Arc apps
585- Adds the same capability to `sandbox`
586- This is NOT a breaking update, however if you'd like your existing app to serve binary assets, you'll need to re-create your API (or hang tight until we release our forthcoming API migration tool)
587- Adds `req.httpMethod` and `req.queryStringParameters`
588- Removes deprecated code paths
589
590---
591
592
593## [5.5.10] - 2019-03-15
594
595### Added
596
597- Cache-control header support to `sandbox`
598 - Default for local dev environment is not to send any `cache-control` header
599 - If specified, `cache-control` passes through
600
601
602---
603
604## [5.5.9] - 2019-03-13
605
606### Added
607
608- Cache-control header support; if not specified, defaults to:
609 - HTML + JSON: `no-cache, no-store, must-revalidate, max-age=0, s-maxage=0`
610 - Everything else: `max-age=86400`
611 - This change only applies to Architect apps provisioned from this version forward
612
613### Fixed
614
615- Default `content-type` response of `application/json` is now `application/json; charset=utf-8;`
616
617### Changed
618
619- Updated dependencies
620
621---
622
623## [5.5.6 - 5.5.8] - 2019-02-28
624
625### Fixed
626
627- Now properly deletes the entire CloudWatch log group when nuking; fixes #311 /ht @mikeal
628- Fixes `sandbox` to work properly when `content-type` has charset assignment; #303, #305 /ht @hada-unlimited
629- Fixes issue with `audit` breaking on `@ws` functions; #311 /ht @mikeal
630- `sandbox` now accepts `statusCode`, in addition to `status` and `code`; fixes #323
631
632
633---
634
635## [5.5.5] - 2019-02-22
636
637### Fixed
638
639- Fixes ordering logs by last event /ht @mikeal
640
641
642---
643
644## [5.5.2 - 5.5.4] - 2019-02-20
645
646### Fixed
647
648- `logs` forces descending order
649- Query params no longer trigger index.html override for `sandbox`
650- Adds support for `text/tsx` in `/public`
651
652
653---
654
655## [5.5.1] - 2019-02-08
656
657### Changed
658
659- Updated dependencies
660
661### Removed
662
663- `test:watch` script and `tape-watch` devdep (due to multiple dependencies with CVEs)
664
665
666---
667
668## [5.5.0] - 2019-02-03
669
670SPA support: mount S3 on the `/` of API Gateway
671
672### Added
673
674- `ANY /{proxy+}` will now route any 'not found' to the HTTP Lambda `src/http/get-index`
675 - Note: proxy+ routes have a slightly different request payload that includes `request.requestContext` not available to regular HTTP Lambdas (so you can use this to test a 404 condition)
676- `ANY /_static/{proxy+}` will proxy to S3 buckets defined by `@static` (if you want to skip proxying through Lambda)
677- Companion library `@architect/functions` also gained `arc.proxy.public` superpower for proxying all requests NOT defined by `.arc` to the `@static` S3 buckets
678
679[For more about single page apps with Architect see there docs here.](https://arc.codes/guides/spa)
680
681
682### Changed
683
684- If `@http` is defined, then `get /` must also be defined
685- `npx sandbox` now mounts `/public` on `http://localhost:3333/_static` to match the deployed API Gateway S3 proxy
686
687
688---
689
690## [5.0.6] - 2019-01-25
691
692### Added
693
694- Improvements to build plugins system (did you know Architect has a build plugins system?)
695 - Now supports NPM scoping (e.g. `@architect/arc-plugin-node-prune`)
696 - Build preparation order now runs pre-deploy build plugins last (after dependency hydration)
697 - Published a companion beta / demo plugin: [`@architect/arc-plugin-node-prune`](https://www.npmjs.com/package/@architect/arc-plugin-node-prune), clean the cruft out of your `node_modules`!
698
699
700### Fixed
701
702- Fixes `create` breaking if `@ws` is not present in `.arc`, #276
703
704
705---
706
707## [5.0.4] - 2019-01-24
708
709### Added
710
711- `repl` now respects environments, allowing you to connect to your remote databases with the `NODE_ENV` environment variable
712
713
714### Fixed
715
716- `repl` was being clobbered by `@architect/data`'s own implementation; fixed in `architect/arc-data` #12, dependency updated
717
718
719### Changed
720
721- Updated dependencies
722
723
724---
725
726## [5.0.2] - 2019-01-22
727
728### Added
729
730- Support for `@ws` in `.arc` for generating WebSocket Lambdas and API Gateway endpoints
731- Support for WebSocket Lambdas in the local sandbox
732- WebSocket Lambdas support in `inventory`, which in turn powers most other workflows
733
734
735### Removed
736
737- Support for `@slack` as the more generic `@http` Lambdas support that use case better
738
739
740### Fixed
741
742- Fixes `@indexes` creation bug
743- Runs `npm i` during `hydrate --update`, resolving a long-standing NPM issue where package-lock files may fall out of sync
744- Fixed: on Windows, S3 assets will be correctly created relative to their location beneath `public` rather than their full paths.
745
746### Changed
747
748- Updated dependencies
749
750
751---
752
753## [4.5.6] - 2019-01-14
754
755
756### Fixed
757
758- Fixes callback in _create-code task, fixes #263
759
760
761### Changed
762
763- Improved error handling in NPM operations
764
765
766---
767
768## [4.5.5] - 2019-01-11
769
770
771### Fixed
772
773- In Windows, NPM no longer fails with `undefined`, fixes #261
774
775
776---
777
778## [4.5.4] - 2019-01-10
779
780
781### Changed
782
783- Improved status reporting during `deploy` and `create`
784
785
786### Fixed
787
788- Fixes cases where hydration was crashing single function deployments, and deployments that execute `create` for missing resources
789
790
791---
792
793## [4.5.1] - 2019-01-08
794
795
796### Changed
797
798- `hydrate` refactor and API
799 - NPM operations are now queued and concurrently processed (env var `ARC_MAX_NPM`, defaults to 10) /ht @grncdr
800 - Vastly improved NPM error handling and related deployment reliability (fixes #141 + #151)
801 - Now hydrates (and updates) deterministically from the current .arc manifest, as opposed to globbing
802 - All NPM operations now use `npm ci` for more consistent behavior across environments
803 - Updates `deploy` to use `hydrate` API, and `sandbox` to use new shared code copier module
804- DynamoDB tables now use on-demand/pay-per-request billing mode, mitigating the need for capacity planning /ht @alexdilley
805- `inventory` now supplies its own Arc project data, allowing it to be called as needed without relying on `util/init`
806
807
808### Fixed
809
810- Freshly created Functions are now properly hydrated with shared code (if available and appropriate; fixes #241)
811- Running `create` on already existing projects now runs orders of magnitute faster
812- `.arc` file is now reliably copied into each Function's `node_modules/@architect/shared` even if you don't use `src/shared` (needed by `@architect` deps)
813- `deploy` now respects `--delete` flag when deploying the whole project
814- Improved progress reporting in `CI` mode, and for `hydrate`, `create`, and `deploy`
815
816
817### Added
818
819- New command: `hydrate --shared [--update]` - hydrates and/or updates `src/shared` and `src/views` (if available)
820- Added test run watcher script /ht @filmaj
821
822
823---
824
825## [4.4.12] - 2018-12-23
826
827
828### Removed
829
830The following folders are no longer required nor autogenerated:
831
832- `src/shared`
833- `src/views`
834- `/public`
835
836Functionality remains unchanged: Contents of `src/shared` are synced to `node_modules/@architect/shared` in all lambdas whenever deploying or using the sandbox. Contents of `src/views` are synced to all HTTP GET lambdas `node_modules/@architect/views`. Public is synced to S3 buckets.
837
838
839---
840
841## [4.4.11] - 2018-12-19
842
843
844### Added
845
846- Updates `sandbox`, adding minor performance tweaks now, and setting up for future enhancements
847 - Updated `sandbox` to asynchronously read files when invoking a Lambdas
848 - Updates runtime handling in `sandbox` to make it easier to add additional runtimes
849 - Each runtime now lives in its own function, which also enables process forking later on
850
851
852---
853
854## [4.4.10] - 2018-12-18
855
856
857### Added
858
859- New logo (added to readme)! /ht @amberdawn
860- `hydrate` and `deploy` now install dependencies in `src/shared` and `src/views` (#240)
861- `QUIET` boolean env var suppresses init header (fixes #238)
862 - Helpful for piping data to disk, e.g. setting up new users on an Architect project with `QUIET=1 npx env > .arc-env`
863- `app.arc` app filename supported as a non-dotfile alternative to `.arc` (#239)
864
865
866### Changed
867
868- Static asset deploys now exclude default `public/readme.md` file
869- Improved `hydrate` progress and completion confirmation
870- Adds Architect version back into the init header
871
872
873### Fixed
874
875- `hydrate` was not properly globbing (and thus, not hydrating) `src/shared` contents
876
877
878---
879
880## [4.4.9] - 2018-12-16 (merge commit, no changes)
881
882
883---
884
885## [4.4.8] - 2018-12-12
886
887
888### Added
889
890- To help accommodate `sandbox` calling out to remote databases, `SANDBOX_TIMEOUT` env var allows you specify in seconds how long `sandbox` should wait for all child processes to complete
891 - `SANDBOX_TIMEOUT` is overridden by any directory-specific `.arc-config` files
892
893
894### Changed
895
896- Default `sandbox` timeout is now symmetrical with Architect's default Lambda timeout time of 5 seconds
897
898
899---
900
901## [4.4.7] - 2018-12-11
902
903
904### Added
905
906- Form-encoded POST values can now be sent enclosed in single quotes /ht @herschel666
907
908
909### Changed
910
911- Skip logging when `@static` isn't deployed
912- Additional hardening of `sandbox` handling of JSON responses emitted from `@architect/functions`
913- Preliminary / prototype commits for outputting CloudFormation from .arc
914- Preliminary / prototype commits in the direction of adding arbitrary header support /ht @mweagle
915
916
917### Fixed
918
919- Issue where `arc.http` JSON responses were crashing `sandbox` due to an encoding mismatch
920- Issue where `ARC_LOCAL` env var wasn't being properly respected by `sandbox` events
921
922
923---
924
925## [4.4.5] - 2018-12-7
926
927
928### Added
929
930- Local `@queues` now available in `sandbox`
931- Big ups to @grncdr for this feature!
932
933
934### Fixed
935
936- `hydrate` wasn't updated to use the new progress indicator, and would fail when used – no longer!
937
938
939---
940
941## [4.4.4] - 2018-12-1
942
943
944### Added
945
946- `deploy` operations now read local and remote last-modified times, and will skip files whose times don't differ, thereby speeding up deploy operations of static files
947- Big ups to @filmaj for this release, too!
948
949
950---
951
952## [4.4.3] - 2018-11-30
953
954
955### Added
956
957- `npx deploy static`: deploys only `@static` assets (as found in the `public/` folder)
958 - Accepts `staging | --staging | -s` and `production | --production | -p` flags
959- `npx deploy static --delete`: deploys static assets, and deletes remote S3 files not present locally in `public/`
960 - Can be used with `staging` and `production` flags
961- Big ups to @filmaj for this release!
962
963
964---
965
966## [4.4.0] - 2018-11-27
967
968
969### Added
970
971- Large refactor of `deploy` workflow to improve stability and reliability
972- `deploy` now identifies missing project resources during deploy operations
973 - Instead of failing / throwing errors, `deploy` now completes its first pass deployment
974 - Then, once completed, `deploy` creates any resources missing from the deployment (and deploys them)
975
976
977### Changed
978
979- `npx inventory --nuke` now destroys `@static` resources (S3 buckets) and `@events` resources (SNS Topics).
980- New projects will no longer create `arc-sessions` tables (for use with `@architect/functions`) by default, and are now explicitly opt-in
981- Replaces `progress` module with a lighter weight, more readily cross-platform homegrown solution
982
983
984---
985
986## [4.3.14] - 2018-11-26
987
988
989### Changed
990
991- `logs` command results now sorted chronologically
992
993
994### Fixed
995
996- Fixes console leaking of large responses in `sandbox`
997
998
999---
1000
1001## [4.3.13] - 2018-11-24
1002
1003
1004### Fixed
1005
1006- `sandbox` was broken in the JWE changeover
1007- Fixes some broken tests
1008
1009
1010### Removed
1011
1012- Unnecessary session table test stubs
1013
1014
1015---
1016
1017## [4.3.12] - 2018-11-23
1018
1019
1020### Changed
1021
1022- New default for Architect sessions is based on JWE
1023- DynamoDB sessions are still available, but [now opt-in](https://arc.codes/guides/sessions)
1024- `sandbox` now matches the 6MB request payload limit of Lambda /ht @herschel666
1025
1026
1027---
1028
1029## [4.3.10] - 2018-11-19
1030
1031
1032### Added
1033
1034- dotfiles are now included in Lambda deployments
1035
1036
1037---
1038
1039## [4.3.9] - 2018-11-15
1040
1041
1042### Changed
1043
1044- Architect parser now accepts multiple spaces between http verb and path in `@http` functions
1045
1046
1047### Fixed
1048
1049- `sandbox` now properly pretty prints paths
1050
1051
1052---
1053
1054## [4.3.8] - 2018-11-14
1055
1056
1057### Added
1058
1059- Additional S3 deploy tests
1060
1061
1062---
1063
1064## [4.3.7] - 2018-11-13
1065
1066
1067### Changed
1068
1069- `sandbox` clears async function timeout if execution is faster than specified timeout
1070
1071
1072---
1073
1074## [4.3.6] - 2018-11-12
1075
1076
1077### Added
1078
1079- Better async error handling (and more helpful error text) in sandbox
1080- Trap and present friendly error when async functions don't return a value in sandbox
1081- `sandbox` returns a promise if no callback is specified
1082- Adds repl
1083
1084
1085---
1086
1087## [4.3.1] - 2018-11-12
1088
1089
1090### Fixed
1091
1092- Error with `/public` folder in sandbox
1093
1094
1095---
1096
1097## [4.3.0] - 2018-11-12
1098
1099
1100### Added
1101
1102- `arc.sandbox.start` now accepts a regular node errback as the last arg
1103
1104
1105---
1106
1107## [4.2.2] - 2018-11-12
1108
1109
1110### Added
1111
1112- This changelog!
1113
1114
1115### Fixed
1116
1117- Removed generated test coverage files from NPM package bundle
1118- Inline help typos
1119
1120
1121---
1122
1123## [4.2.1] - 2018-11-09
1124
1125
1126### Added
1127
1128- `CI` env boolean for disabling `deploy` progress indicator in CI
1129
1130
1131---
1132
1133## [4.2.0] - 2018-08-12
1134
1135
1136## Added
1137
1138- CORS support for `sandbox`
1139
1140
1141## Fixed
1142
1143- CORS bug in HTTP functions
1144- Issue with `sandbox` not properly passing callbacks if used as a module
1145
1146
1147---
1148
1149## [4.1.3] - 2018-11-6
1150
1151
1152### Added
1153
1154- Massive tests refactor, shout out to @filmaj!
1155 - Added tests for many important workflows
1156 - Code coverage now tracked with Istanbul
1157- Architect's CI is now public via TravisCI
1158
1159
1160---
1161
1162## [4.1.2] - 2018-10-31
1163
1164
1165### Changed
1166
1167- Roughed in resource flagging (not yet ready, though)
1168
1169
1170### Fixed
1171
1172- Restored accidentally removed `readme.md`
1173
1174
1175---
1176
1177## [4.1.1] - 2018-10-31
1178
1179
1180### Added
1181
1182- `logs` workflow!
1183- Command line flags for various workflows:
1184 - `audit`: `apply`, `--apply`, `-a`
1185 - `config`: `apply`, `--apply`, `-a`
1186 - `create`: `local`, `--local`, `-l`
1187 - `deploy`: `production`, `--production`, `staging`, `--staging`, `public`, `--public`, `/public`, `lambda`, `--lambda`, `lambdas`, `--lambdas`, `functions`, `--functions`
1188 - `dns`: `nuke`, `--nuke`, `-n`, `route53`, `--route53`, `-r`
1189 - `env`: `verify`, `--verify`, `-v`, `remove`, `--remove`, `-r`
1190 - `hydrate`: `update`, `--update`, `-u`
1191 - `inventory`: `nuke`, `--nuke`, `-n`, `--nuke=tables`, `verify`, `--verify`, `-v`
1192 - `sandbox`: `production`, `--production`, `-p`, `staging`, `--staging`, `-s`, `testing`, `--testing`, `-t`
1193- Additional path validation for leading and trailing special characters
1194
1195
1196### Changed
1197
1198- Refactored `deploy` command to support additional command line flags, and surgical deploys of just `/public`, or just Lambdas
1199- Copy fixes for deployment workflow
1200- Made boilerplate HTTP functions a bit more minimal
1201- Improved `sandbox` testing
1202
1203
1204---
1205
1206## [4.1] - 2018-10-24
1207
1208
1209### Added
1210
1211- Automagical `src/views` folder: copies contents into all `HTTP GET` functions' `node_modules/@architect/views`
1212- `@views` pragma, overrides bulk `src/views` copy, and only copies into specified functions
1213- More information on `src/views` and `@views` [can be found here](https://blog.begin.com/serverless-front-end-patterns-with-architect-views-cf4748aa1ec7)
1214- Adds ability to use the following special characters in static URL parts: `-` (dash), `.` (period), `_` underscore
1215- New HTTP function validation logic:
1216 - HTTP functions must begin and end with a letter or number
1217 - Cannot create URL params that contain special chars (except leading `:`, of course)
1218- Adds command-line flags:
1219 - `npx create`:
1220 - `local`, `--local`, `-l`
1221 - `npx deploy`:
1222 - `production`, `--production`, `-p`
1223 - `staging`, `--staging`, `-s`
1224- New [Examples repo](https://github.com/architect/examples)
1225
1226
1227### Changed
1228- Some light boilerplate code cleanup
1229- [#168](https://github.com/architect/architect/issues/168) Fixed issue where Architect parser was missing `@http` support in JSON + YAML manifests
1230- [#164](https://github.com/architect/architect/issues/164) Fixed issue in Windows where Architect would try to copy files over itself
1231
1232
1233---
1234
1235## [4.0] - 2018-10-20
1236
1237
1238### Added
1239
1240- `@http` pragma, now the default way to create Lambda functions for the web
1241 - Supports fully dynamic Content-Type, Status Code
1242 - Supports all HTTP methods
1243 - CORS support with a boolean flag
1244- `public` folder, now the default way to sync static assets to S3
1245- `JSON` & `YAML` support for the `.arc` manifest
1246- Per-Lambda function configuration support with `.arc-config` files
1247- Per-Lambda function IAM roles support with `role.json` files
1248
1249
1250### Changed
1251
1252- Simpler package name (`npm i @architect/architect`)
1253- New GitHub name ([https://github.com/architect/architect](https://github.com/architect/architect))
1254- Smarter rate-limiting for deployments of large (50+ function) projects
1255- Complete docs revamp with new sample projects at [arc.codes](https://arc.codes)
1256- Fix for obscure bug where `server.close`causes a TypeError
1257- Readme file cleanup
1258
1259
1260### Removed
1261
1262- `.static` folder has been deprecated in favor of the new `public` folder
1263- Statically bound Content-Type web functions (i.e. `@html`, `@css`) are deprecated
1264 - `sandbox` will no longer bootstrap these kinds of functions
1265 - `create` will no longer make these kinds of functions
1266 - However, `deploy` still supports deploying these legacy functions
1267
1268
1269---
1270
1271The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).