UNPKG

54.8 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.4.0] 2020-05-17
9
10### Added
11
12- Deploy can now deploy directly deploy single functions or groups of functions to Lambda by providing a path; examples:
13 - `arc deploy src` will dirty deploy all of `./src`
14 - `arc deploy src/http` will dirty deploy all of `./src/http`
15 - `arc deploy src/events/foo` will dirty deploy `./src/events/foo`
16 - As a reminder: direct deployments should be considered temporary / for testing only, and will be overwritten by any deployments coming in from a proper full deploy operation
17 - Fixes #625, shout out to @filmaj for this awesome feature! 🔥
18- Adds Yarn support to Sandbox and Hydrate
19- Improved default caching behavior for static assets; fixes #273
20 - Any assets that don't have `cache-control` explicitly set will now default to using `ETag` in order to improve the reliability of cache invalidation
21 - HTML & JSON responses still default to anti-caching headers
22- Added path peeking (aka pretty URLs); fixes #269
23 - URLs delivered via `proxy` no longer require a trailing slash!
24 - Example: to load `/foo/index.html`, you used to have to request `/foo/`
25 - Now, if `/foo` is requested, `proxy` will automatically try peeking into `/foo` to see if it contains `/foo/index.html` – if not, it'll 404 as expected
26- Added ETag support to Sandbox static asset serving
27- Adds Sandbox support for `multiValueHeaders` in response object; fixes #764, thanks @andybee!
28- Added support for arbitrary static asset config mapping
29 - Pass proxy `config.assets` a `static.json`-like static asset object
30- Added support for configuring `ruby2.7` and `dotnetcore3.1` runtimes
31
32
33### Changed
34
35- If creating a FIFO queue, set `ContentBasedDeduplication` to be enabled by default; thanks @filmaj!
36
37
38### Fixed
39
40- Fixed an issue where `multiValueHeaders` may conflict with `headers` values for `Content-Type`; thanks @andybee!
41- Fixed an issue where errors weren't being handled if the database port conflicted on startup; thanks @exalted!
42- Custom `@aws` WebSocket routes will now have their dependencies correctly hydrated, thanks @mawdesley!
43- Fixed Sandbox error `ERR_FEATURE_UNAVAILABLE_ON_PLATFORM` in Node.js 14; fixes #780, ht @stegosource
44- Fixed issue where `404` responses delivered from `@static` may be inadvertently cached by CDNs
45
46---
47
48## [6.3.5] 2020-04-18
49
50### Added
51
52- Added Sandbox watcher pausing
53 - The presence of `_pause-architect-sandbox-watcher` in your operating system's `$TMP` directory (usually `/tmp` or `c:\windows\temp`) will temporarily pause the Sandbox watcher
54 - This means Sandbox can remain open during deploys and neither `arc sandbox` or `arc deploy` should interfere with the other's dependency hyration
55 - This is also useful when combined with tools like `lint-staged` to ensure automated file stashing within `src/shared` and `src/views` doesn't result in hydration failures
56 - Sandbox cleans up this file on startup, jic
57- Allow Architect's CDN checks / processes to be disabled
58 - This means you can now configure and manage your own CDNs entirely via Macros; fixes #750, thanks @jgallen23!
59 - Syntax: `@cdn false` || `@cdn disable` || `@cdn disabled`
60
61
62### Changed
63
64- Improved Sandbox's missing dependency warnings to provide better instructions on how to install a missing dependency if the function in question does not already have a `package.json` file; /ht @exalted
65
66
67### Fixed
68
69- Fixed issue where explicit (or empty) returns in functions would provide a red herring error
70- When a non-existent `@events` Lambda is invoked, Sandbox will now gracefully fail
71- Updated dependency status checker, fixes false positive rehyhdration of packages installed by archive or git repo
72- Fixed issue where custom named deployments (`deploy --name`) wouldn't work with `static`; fixes #759, thanks @jgallen23!
73- Fixed issue where deploying static assets may deploy to the wrong bucket if additional buckets are defined in Macros; fixes #750, thanks @clintjhill + @jgallen23!
74
75---
76
77## [6.3.4] 2020-04-10
78
79### Fixed
80
81- Sandbox (and other workflows) should now restore the terminal cursor more reliably when quit
82- Sandbox now preserves leading / trailing whitespace in console logs
83- Fixed issue where `.arc-config` files with an `@aws timeout` value of exactly `900` (15 minutes) would not be respected in Sandbox
84
85---
86
87## [6.3.3] 2020-03-31
88
89### Added
90
91- Adds Sandbox warning for out of bounds dependency loads
92 - This helps to ensure that potential side effects of running Node.js locally – such as the `require` algorithm traversing the filesystem outside the boundaries of the function in question – are less likely to be discovered after deploying to live AWS infra
93
94
95### Fixed
96
97- Updated the call that starts Sandbox to ensure it initiates the filesystem watcher
98
99---
100
101## [6.3.2] 2020-04-10
102
103### Fixed
104
105- Fixed bug with static mocks in Package
106
107---
108
109## [6.3.0 - 6.3.1] 2020-03-24
110
111### Added
112
113- Added early support for deploying API Gateway HTTP APIs (currently only via [Macro](https://github.com/architect/arc-macro-http-api))
114- Lambda's payload size limits are now respected and mocked in Sandbox; payloads exceeding 6MB will fail to execute, as they would in AWS
115
116
117### Changed
118
119- If `@http` is defined, a static bucket will now be automatically be created
120 - `@http` makes `@static` implicit; `@static` still serves to configure static asset hosting
121 - If you don't use `@http` you can still use `@static` to independently create and configure static asset hosting
122- Updated `http-proxy` to support API Gateway HTTP APIs (say that three times fast)
123
124
125### Fixed
126
127- Fixed Sandbox issue where HTTP requests with large body payloads error with E2BIG; fixes #639, /ht @dawnerd
128
129---
130
131
132## [6.2.5] 2020-03-19
133
134### Changed
135
136- Architect now falls back to a very basic default project if an Architect project manifest file is not found in the root of the working directory
137- Requests in Sandbox that include query string arrays like `?ids=1&ids=2&ids=3&ids=4` are now consistent with API Gateway's request `multiValueQueryStringParameters` property; thanks @defionscode!
138- Deploy now ensures dependency hydration occurs before macros in the deploy process, enabling macros to mutate dependencies and shared files during a deploy
139 - A nice example macro to use is `@architect/arc-macro-node-prune`, which tidies up all the junk in your functions' `node_modules` directory
140- Minor improvements to auto-generated boilerplate function files
141
142
143### Fixed
144- `.arc-env` env vars now support a wider variety of special characters (such as `+`, `@`, `#`, etc.) if quoted, e.g. `FOO "sp#ci@lch+rs"`; fixes #638
145- Fixed Architect project manifest syntax errors and error reporting
146
147---
148
149## [6.2.4] 2020-02-29
150
151### Added
152
153- Added mocking of AWS's `multiValueHeaders` into Sandbox requests
154- Also added mocking of the headers AWS drops from requests
155
156
157### Fixed
158
159- Fixes differences in Sandbox between AWS's inconsistent header casing and our existing lowcase-normalized header casing; fixes #698
160
161---
162
163## [6.2.1 - 6.2.3] 2020-02-13
164
165### Changed
166
167- Sandbox now ensures `NODE_ENV` is one of `testing`, `staging`, or `production` (defaulting to `testing`)
168- Fix bad SQS in CloudFormation
169- Updates deps
170
171
172### Fixed
173
174- Fixed issue in Sandbox where pulling changes down with git (or Mercurial) would not trigger filesystem changes (e.g. auto-hydration, etc.); fixes #673
175- Removed validation from setting your app's environment variables (e.g. `arc env testing FOO bar`), use whatever you like! Fixes #669, thanks @rbuckingham!
176- Fixed issue within Architect Functions that caused issues in certain test harnesses that automatically set `NODE_ENV`
177- Fixed issue that may cause Sandbox to stall when called via the Architect CLI
178
179---
180
181## [6.2.0] 2020-02-04
182
183### Added
184
185- Added support for running multiple Sandboxes at the same time; fixes #635
186 - No more conflicting events and ports when running multiple simultaneous local Architect projects
187 - Also, you can now manually configure your `@events` port with `ARC_EVENTS_PORT`, and `@tables` port with `ARC_TABLES_PORT`
188 - Note: while unlikely, if you already manually specify your Sandbox's port, this may be a breaking change to your local workflow in two circumstances:
189 - 1) You use Architect Functions; to fix, upgrade to Functions `3.6` or later
190 - 2) You hardcode an `@events` client to port `3334` or DynamoDB client to port `5000`; you should now read the ports from `ARC_EVENTS_PORT` and `ARC_TABLES_PORT`
191 - This change is **NOT breaking to any live AWS / production infra**
192- Deploy dry-run flag: `deploy --dry-run`; fixes #649
193 - Test your `@macros`, function hydration, CloudFormation / SAM template files, and other deployment-related operations without actually building any live infra
194 - Dry-run mode runs through all deploy operations necessary to generate your app's CloudFormation / SAM template files
195 - **Heads up:** the AWS CLI requires a live, active S3 bucket to generate your app's templates; however no **live infra will be created** from these templates
196
197
198### Changed
199
200- Update dependencies
201
202
203### Fixed
204
205- Fixed Sandbox issue where DynamoDB (and other `aws-sdk`) calls may time out if a `~/.aws/credentials` file is not present
206- Fixed issue with shared code hydration in `python3.8`; fixes #650, thanks @rbuckingham!
207- Added support for `deno` in `utils.getRuntime`
208
209---
210
211## [6.1.9] 2020-02-03
212
213### Added
214
215- Better support for quiet mode in Sandbox:
216 - Via params: `sandbox.start({quiet: true})`
217 - Via env vars: `ARC_QUIET` (or legacy `QUIET`)
218 - Fixes #621; thanks @konsumer!
219- Adds discrete `sandbox.end([callback])` method for shutting down the Sandbox in test environments
220 - This method takes an optional callback or returns a promise
221- Sandbox now sets the `ARC_CLOUDFORMATION` env var used by Architect Functions and other libs
222 - This only occurs when running Sandbox against live infra (specifically: `NODE_ENV` = `staging` || `production`),
223
224
225### Changed
226
227- When called as module, `sandbox.end` now calls an optional callback or returns a promise; fixes #622, thanks @konsumer!
228- Sandbox now only starts the `@events` + `@queues` bus and `@tables` DB when called for by the Architect project manifest
229
230
231### Fixed
232
233- Improved logging for WebSocket invocations to be less confusing about potential non-error states when message action not found; fixes @sandbox#228
234
235---
236
237## [6.1.8] 2020-01-29
238
239### Added
240
241- Added `--static` flag to init to create a basic static asset app (instead of one with a `@http get /` function)
242 - Example: `arc init --static ./myapp` or `npm init @architect --static ./myapp`
243
244
245### Fixed
246
247- Fixed Sandbox issue with secondary index (`@indexes`) naming schemas first introduced with Architect 6; fixed #45, thanks @eshikerya & @konsumer
248
249
250### Changed
251
252- The default `.arc` file generated in new projects no longer includes a boilerplate for `@aws bucket`
253- Updated dependencies
254
255---
256
257## [6.1.6 - 6.1.7] 2020-01-24
258
259### Added
260
261- `@queues` are FIFO by default now; you can opt-out with `.arc-config` `fifo false`
262- `arc.queues.publish` will now accept a `groupID` parameter for ordering within a FIFO queue
263- Read more about queues! https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
264
265### Fixed
266
267- Queues will sync VisibilityTimeout to the Lambda timeout
268
269---
270
271## [6.1.5] 2020-01-23
272
273### Fixed
274
275- Fixed local WebSocket port in `ARC_WSS_URL` in Sandbox
276
277---
278
279## [6.1.4] 2020-01-22
280
281### Added
282
283- Added `ARC_WSS_URL` env var on Sandbox startup (matches the environment variable behavior of Architect 6.0.25); fixed #225
284
285
286### Changed
287
288- Updated default Lambda runtime to match AWS's default: `nodejs12.x` (formerly `nodejs10.x`); fixed #609
289 - This means that upon your next deploy, any Lambdas that do not have a runtime specified will automatically be updated to `nodejs12.x`
290 - If you rely on the default runtime selection and would prefer to retain Node.js 10, you can either:
291 - Add `runtime nodejs10.x` to the `@aws` pragma of your Architect project manifest (`.arc`)
292 - Add a `.arc-config` file to the root of any individual functions you'd like to continue using `nodejs10.x` and add the same `@aws` pragma config specified above
293 - Read more here: https://arc.codes/reference/arc-config/runtime
294 - Quick example:
295```
296# .arc || src/http/get-index/index.js
297@aws
298runtime nodejs10.x
299```
300- Updated dependencies
301
302---
303
304## [6.1.3] 2020-01-21
305
306### Fixed
307
308- Fixes issue with hydration of shared code in functions using `nodejs12.x`; thanks @bardbachmann!
309
310
311### Updated
312
313- Update dependencies
314
315---
316
317## [6.1.2] 2020-01-20
318
319### Added
320
321- A `PointInTimeRecovery` attribute may now be added to tables defined in `.arc` for DynamoDB point-in-time recovery support; thanks @defionscode!
322
323---
324
325## [6.1.1] 2020-01-18
326
327### Added
328
329- An `encrypt` attribute may now be added tables defined in `.arc` for DynamoDB encryption support using customer or AWS managed KMS keys; thanks @defionscode!
330
331---
332
333## [6.1.0] 2020-01-13
334
335### Added
336
337- Finally: Architect now automatically creates a deployment bucket if one is not specified!
338 - If you already have a deployment bucket specified, nothing changes; Architect will continue using that
339 - If a deployment bucket was automatically created in a prior deployment and now no longer exists (or access to it is no longer available), a new bucket will be created and your app's configuration will be updated
340 - This also means the `@aws` pragma is no longer strictly necessary to deploy to AWS with Architect; you can now work completely from a `~/.aws/credentials` file or env vars
341
342
343### Fixed
344
345- Allow reading and destroying logs from `ws` paths; fixes @architect#538 + @logs#98, ht @jessehattabaugh, thanks @austinkelleher!
346 - Additionally fixes destroying from paths that include `000`
347
348---
349
350## [6.0.29] 2020-01-07
351
352### Added
353
354- AWS credentials can now be loaded via env vars (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`), which enables AWS STS and tools such as [AWS Vault](https://github.com/99designs/aws-vault)
355 - Thus, Architect no longer requires a `~/.aws/credentials` file to run
356 - Also allows local creds file to be overriden by env vars by specifying `ARC_AWS_CREDS=env`
357 - Also added AWS session token support via setting `AWS_SESSION_TOKEN` env var
358 - Fixes `utils` #26; thanks @ryan-roemer!
359- Enabled AWS `credential_process` usage via improved credential handling; fixes #582 thanks @defionscode!
360
361
362### Fixed
363
364- Credentials are now properly backfilled with dummy values for various workflows
365 - This ensures certain specific workflows (such as local Sandbox usage with `@tables`) won't crash or stall without a valid `~/aws.credentials` file present
366- Fixed Sandbox errors related to missing `aws-sdk` dependency
367
368
369### Updated
370
371- Updated dependencies
372
373---
374
375## [6.0.28]
376
377FIXME
378
379---
380
381## [6.0.27]
382
383FIXME
384
385---
386
387## [6.0.26] 2019-12-13
388
389### Added
390
391- Sandbox now passes full request params from WebSocket clients on `connect` and `disconnect`
392 - Now in addition to `request.requestContext.connectionId`, you'll have `request.headers`, and `request.queryStringParameters` (if present)
393 - Sandbox now only passes `request.body` to WebSocket functions that receive `message`s (instead of adding an empty `body` object to all requests)
394- Added proper emulation of API Gateway v2's WebSocket connection authorization
395 - Returning an object containing `statusCode` 2xx allows a WebSocket client to connect
396 - Returning any other status code will hang up on the request
397
398---
399
400## [6.0.25] 2019-12-02
401
402### Changed
403
404- Now prints WebSockets URLs upon deployment, thanks @jessehattabaugh!
405
406
407### Fixed
408
409- Fixes regression related `staging` and `production` WebSockets names and paths, thanks @jessehattabaugh!
410 - WebSockets APIs named `${appname}Websocket` are now named `${appname}Websocket${stage}` (like `@http` APIs)
411 - `production` WebSockets paths now correctly reflect the production stage (e.g. `longawsurl.com/production`)
412 - If you're using the `ARC_WSS_URL` env var, be sure to also update `@architect/functions`
413
414---
415
416## [6.0.24] 2019-12-02
417
418### Added
419
420- Adds `CAPABILITY_AUTO_EXPAND` for nested stack deployments; fixes #436, thanks @jgallen23!
421
422---
423
424## [6.0.23] 2019-11-19
425
426### Added
427
428- Added support for `nodejs12.x`, `python3.8`, and `java11` runtimes
429
430
431### Changed
432
433- Updated dependencies
434
435
436### Fixed
437
438- Fixed printing of unnecessary ANSI escape characters in CI environments (`CI` env, or not TTY output)
439
440---
441
442## [6.0.21] 2019-11-19
443
444### Fixed
445
446- Adds `ArcWebSocketPolicy` to the generated IAM Role
447- Adds `ARC_WSS_URL` environment variable to all Lambdas if `@ws` is defined
448- Fix `.arc-config` properties: `layers` and `policies`
449 - Adding one layer or policy per line: `layers my:arn:here` or `policies my:arn:here`
450 - Adding ARNs as a list (two spaces indented below `layers` or `policies`)
451 - eg:
452
453```arc
454@aws
455layers
456 my:arn:here
457 my:other:arn:here
458```
459
460### Removed
461
462- Generated CloudFormation template output value `WSS` is now a plain URL without `wss://` or `https://` protocol, without the `/staging` and `/production` path part, and the suffix `@connections` (which was removed by AWS from the `ApiGatewayManagementApi`)
463- Removed `ArcRoleReflection` policy from the generated IAM Role
464- Removed `PYTHONPATH` unless a Lambda function explicitly has a Python runtime
465
466---
467
468## [6.0.20] 2019-11-5
469
470### Added
471
472- Integrates new `@architect/create` module for bootstrapping projects and initializing project files
473- Added ability to specify project name and install path, e.g. `arc init ./foo` creates a dir named `foo` in your current dir, and creates a new Arc project named `foo` in there
474
475
476### Changed
477
478- Updated dependencies (which are also now using `@architect/create`)
479- Updated CLI documentation to reflect current functionality of `arc env`
480
481
482### Fixed
483
484- Fixes issue when `@tables` definition includes `stream true`; thanks @gr2m!
485- Fixes and `arc help <command>` command
486- Runtime flag now works for project creation: `runtime`, `--runtime`, or `-r` + `node`, `js`, `python`, `py`, `ruby`, `rb` initializes with Node, Python, or Ruby
487- Removed some unnecessary dependencies
488
489---
490
491## [6.0.19] 2019-10-17
492
493### Fixed
494
495- Fixes failed deploys if file type is unknown by common mime-type database; resolves #56, thanks @mikemaccana!
496- Fixes paths for deployment of assets on Windows; resolves #58, thanks @mikemaccana!
497
498---
499
500## [6.0.18] 2019-10-15
501
502### Added
503
504- Infrequently prints version update notifications to CLI
505
506---
507
508## [6.0.15 - 6.0.17] 2019-10-15
509
510### Added
511
512- Added update notifier to help ensure folks are running the (hopefully) least buggy, most stable, most secure version of Architect
513
514
515### Changed
516
517- Updated dependencies
518
519
520### Fixed
521
522- Fixes deployment issue if `get /` is not specified in `@http`; resolves @package#27, /ht @grahamb and @jeffreyfate!
523
524
525### Changed
526
527- Improves error states for missing static configs, 404s, etc. when using `@http` and/or `@static` with `arc.http.proxy` or without defining `get /`
528
529---
530
531## [6.0.15] 2019-10-14
532
533### Changed
534
535- Legacy WebSockets paths on the filesystem are now formally deprecated
536 - Your default three WebSockets paths should be: `src/ws/default`, `src/ws/connect`, `src/ws/disconnect`
537 - 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!
538
539
540### Fixed
541
542- Fixed issue when emitting to WebSockets with Arc Functions (`arc.ws.send`); resolves #48, thanks @andybee + @bvkimball!
543- Fixed issue where `sandbox` may not have correctly resolved some custom WebSocket actions
544- Fixed HTTP request with `body` and no `Content-Type` header; resolves #102, thanks @andybee!
545- Fixed issue where killed subprocesses would not trigger timeouts; resolves #30, /ht @mikemaccana
546- Fixed issue where functions with legacy runtimes may not have been fully hydrated
547
548---
549
550## [6.0.14] 2019-10-11
551
552### Added
553
554- Added support for `@static fingerprint true` in root spa / proxy requests
555 - This enables Architect projects to deliver fully fingerprinted static assets while also ensuring that each file is appropriately cached by clients and network infra
556 - Also includes support for build-free calls between your fingerprinted static assets
557 - Example: in `public/index.html`, use the following syntax to automatically replace the local / human-friendly filename reference to the deployed fingerprinted filename:
558 - `${arc.static('image.png')}` will be automatically replaced by `image-a1c3e5.png`
559 - Or `${STATIC('image.png')}` (which is the same thing, but shoutier)
560 - 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`)
561
562
563### Changed
564
565- Updated dependencies
566- Ensures html / json are published to S3 with anti-cache headers
567
568
569### Fixed
570
571- Restores static asset pruning (`arc deploy --prune` or `arc deploy --static --prune`)
572- Fixes issues with parsing certain properties in `arc.json`, thanks @mikemaccana!
573- Fixed issue that may prevent `repl` from working in more recent versions
574- Add anti-caching headers to `sandbox` 404 response
575- Fixes root spa / proxy requests when Architect and/or Sandbox are globally installed; resolves #92 /ht @grahamb
576
577---
578
579## [6.0.13] 2019-10-02
580
581### Fixed
582
583- Fixed issue where with `@static fingerprint true` enabled, the `static.json` file would not be copied into deployed functions' shared dirs; thanks @dawnerd + @jgallen23!
584- Removed unnecessary second-order dependency, which should lighten up the Architect install size a bit
585
586
587### Changed
588
589- Updated dependencies
590
591---
592
593## [6.0.11 - 6.0.12] 2019-09-29
594
595### Added
596
597- `sandbox` Auto-hydration received a bunch of nice upgrades:
598 - Auto-hydration now detects changes to the state of your installed Node dependencies, and rehydrates if necessary; for example:
599 - You're working on a project, and a teammate updates a dependency in `get /foo` from version `1.0.0` to `1.1.0`
600 - Upon your next git pull, `sandbox` will detect the dependency update in `get /foo` and automatically install version `1.1.0` for you
601 - Auto-hydration now has a rate limit of one change every 500ms to prevent recursive or aggressive file updates
602 - Auto-hydration now has `@static folder` support
603 - Auto-hydration now only hydrates the shared files necessary
604 - 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`
605 - Events now have a timestamp and improved formatting
606- Beta: `sandbox` init script support!
607 - `sandbox` will now run the init script of your choosing upon startup after all subsystems have started up:
608 - `scripts/sandbox-startup.js` - a CommonJS module, receives your parsed Arc project as a parameter, supports async/await
609 - `scripts/sandbox-startup.py` - a Python script
610 - `scripts/sandbox-startup.rb` - a Ruby script
611- Startup auto-hydration now hydrates `src/views` and `src/shared`
612- Added support for `@static folder` to static asset `fingerprint`ing
613
614
615### Changed
616
617- Improvements to the conditions under which the HTTP server starts, shuts down, and restarts; fixes `sandbox` #65
618- Improved `sandbox` async error copy (displayed when execution does not complete)
619- Proxied requests in `sandbox` now sends a proper `req.resource`, which can resolve some SPA bugs, esp when used with newer Arc Functions
620- `sandbox` now respects and errors on invalid response params for proper Architect 6 compatibility; fixes `sandbox` #49
621- Updates `sandbox` to Dynalite to `3.0.0`, thanks @mhart!
622- Better 404 / file missing handling in `sandbox` when using `http.proxy` (or loading assets without `@http get /` specified)
623- `hydrate --update` now properly inventories its update operations, avoiding superfluous work
624
625
626### Fixed
627
628- Fixes correct inventory paths for `src/ws/*`, which should in turn fix WebSocket function hydration, thanks @mikemaccana!
629- When auto-hydrating functions upon startup, `sandbox` no longer hydrates `src/views` and `src/shared` with each function
630- Fixed issue where `hydrate`'s shared file copying may have leaked across Lambda executions in rare circumstances
631- Fixed undefined message in `hydrate` init
632- Improved `hydrate` error bubbling
633- Formatting and line breaks in `hydrate` printer return should now more closely (or exactly) match console output
634- Fixed issue where in certain circumstances `get /` wouldn't reload `sandbox` after a change to the project manifest
635- Minor fix where if you specified a `SESSION_TABLE_NAME` env var outside of `.arc-env`, `sandbox` won't clobber it
636- Fixed caching headers for various `sandbox` error states (async, timeout, etc.) to ensure your browser won't accidentally cache an error response
637- Fixes issue where binary assets delivered via `sandbox` / root may not be properly encoded
638- Fixes empty mock `context` object encoding
639
640---
641
642## [6.0.10] 2019-09-11
643
644### Changed
645
646- Running `hydrate` now properly inventories its update operations, avoiding superfluous work there as well
647- Results returned by `hydrate` are now symmetrical with what's printed
648- `@http` functions are now provisioned with the `ARC_HTTP` env var, which is set to `aws_proxy`
649
650
651### Fixed
652
653- Fixed `env` to ensure env vars were populated out of the correct region
654- `sandbox.close` will no longer throw an error if project doesn't use `@http` or `@ws`
655- Fixed reliability of `hydrate` and other Architect operations printing in CI containers and other non-TTY environments
656
657---
658
659## [6.0.9] 2019-09-09
660
661### Changed
662
663- Running `hydrate` now properly inventories its install operations, avoiding superfluous work
664
665
666### Fixed
667
668- Fixed issue where `sandbox` would hang if POST requests were sent without a body
669- Fixed `logs` to ensure log data is read out of the correct region
670- Fixed S3 permissions to enable direct asset uploading
671
672---
673
674## [6.0.8] 2019-09-06
675
676### Fixed
677
678- Fixes case where user-defined region may not be respected
679- Fixes provisioning `@scheduled` functions
680
681---
682
683## [6.0.7] 2019-09-05
684
685### Changed
686
687- Add clearer bucket region instructions during init
688
689---
690
691## [6.0.6] 2019-08-30
692
693### Changed
694
695- Internal change; improve error handling states
696
697---
698
699## [6.0.5] 2019-08-28
700
701### Added
702
703- Added initialization confirmation messages
704
705
706### Changed
707
708- Improved boilerplate project files written during initialization
709- Updated boilerplate .arc file initialized
710- Patched vendored proxy bundle to 3.3.7
711- Updated deps
712
713---
714
715## [6.0.4] 2019-08-27
716
717### Changed
718
719- Updated deps
720
721---
722
723## [6.0.3] 2019-08-24
724
725### Fixed
726
727- Internal error handling change
728
729
730### Changed
731
732- Updated deps
733
734---
735
736## [6.0.1 - 6.0.2] 2019-08-22
737
738### Fixed
739
740- Fixes issue with auto-hydration of new dependencies during `sandbox` startup
741- Fixes issue with `arc deploy --static` throwing an unnecessary error after uploading files, fixes #427
742- Fixes minor copy issue in `arc deploy` reporting the incorrect static asset folder when there are no files to deploy
743
744---
745
746## [6.0.0] 2019-08-20
747
748### Changed
749
750- Many things! Updates to this changelog forthcoming shortly. Arc 6.0 is a breaking change, please refer to https://arc.codes and upgrade mindfully!
751
752---
753
754## [5.9.24] 2019-08-05
755
756### Fixed
757
758- Resolves issue where static assets aren't loading from `_static/` in `sandbox`, fixes #416
759
760---
761
762## [5.9.23] 2019-07-23
763
764### Fixed
765
766- Fixed issue preventing Ruby functions from properly executing in `sandbox`
767- Fixed issue prevent Python functions from properly executing in Windows `sandbox`
768- Fix broken characters in Windows `sandbox` console
769- Fixes super obscure bug where certain shared files may not be included in a single function deploy
770
771### Changed
772
773- `sandbox` context now passes an empty object (to be mocked soon!) to all runtimes
774 - This deprecates the legacy AWS implementation of `context` (since retired in production) passed to `sandbox` Node functions
775
776---
777
778## [5.9.21-22] 2019-07-17
779
780### Added
781
782- Adds auto-hydration to new functions without restarting `sandbox`
783
784
785### Fixed
786
787- Fixes issue with auto-hydration on `sandbox` startup
788- Fixes potential issue in static asset deploys in Windows
789
790---
791
792## [5.9.20] 2019-07-15
793
794### Added
795
796- Expanded support for static asset fingerprinting! If you've enabled fingerprinting (`@static fingerprint true`):
797 - `sandbox` will regenerate your `public/static.json` file on startup
798 - 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
799
800
801### Fixed
802
803- `sandbox` auto-refresh now detects file deletions from `src/shared` and `src/views`
804
805---
806
807## [5.9.19] 2019-07-12
808
809### Added
810
811- Adds PYTHONPATH to `sandbox` Lambda invocation for `/vendor` modules
812
813### Fixed
814
815- Fixes `sandbox` crashing when `get /` and other functions aren't defined in `.arc` or present in the filesystem, but are requested by a client
816- Prevents startup of http server if `@http` isn't defined in `.arc`
817- Improves `sandbox` support in Windows
818
819---
820
821## [5.9.18] 2019-07-12
822
823### Fixed
824
825- Fixes WebSocket provisioning issue
826
827---
828
829## [5.9.17] 2019-07-12
830
831### Changed
832
833- Disables delta resource creation during deployments
834 - This functionality is better served by more reliable and deterministic resource creation via the forthcoming Architect 6 release
835
836---
837
838## [5.9.16] 2019-07-12
839
840### Changed
841
842- Reverts previous breaking change on WebSockets, default directories that get created are now once again `ws-connect`, `ws-default`, and `ws-disconnect`
843
844---
845
846## [5.9.15] 2019-06-26
847
848### Added
849
850- Auto-refresh! `sandbox` now keeps an eye out for the following changes to your project:
851 - Edits to your Architect project manifest will mount or unmount HTTP routes without having to restart `sandbox`
852 - Changes to `src/shared` and `src/views` will automatically rehydrate your functions' shared code
853 - More to come!
854
855
856### Changed
857
858- Prettied up `sandbox` initialization printing a bit
859
860---
861
862## [5.9.14] 2019-06-25
863
864### Added
865
866- Auto-hydration!
867 - Say goodbye to running `npx hydrate` before starting new projects, cloning existing projects, or pulling down new functions
868 - On startup, any functions missing dependencies on the local filesystem will now be auto-hydrated
869 - Supported runtimes and dependency manifests: Node + `package.json` (requires npm >= 5.7), Python + `requirements.txt` (calls pip3), and Ruby + Gemfile (calls bundle)
870
871---
872
873## [5.9.10-13] 2019-06-24
874
875### Fixed
876
877- Ensures `sandbox` starts in the cases of:
878 - No local AWS credentials file (e.g `~/.aws/credentials`)
879 - The local AWS credentials file is present, but is missing the requested profile name
880 - Fixes #382, 391
881- Fixed issue with `hydrate` caused by an errant merge
882
883---
884
885## [5.9.9] 2019-06-23
886
887### Changed
888
889- Projects that use WebSockets (`@ws`) in their `.arc` file will need to be cautious about upgrading
890 - 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
891
892### Fixes
893
894- `@ws` directive now works correctly with the `npx inventory` command set
895- Fixes `sandbox` wrapper when use as async module, adds `sandbox` test
896
897---
898
899## [5.9.8] - 2019-06-19
900
901### Changed
902
903- Deployments of static assets now follow symlinks in the `public/` directory
904
905---
906
907## [5.9.5-7] - 2019-06-18
908
909### Changed
910
911- The `sandbox` workflow is now its own module!
912 - No functionality changes to `sandbox` in this release
913 - A few minor improvements to `sandbox` console messages during startup, and drying up port assignment logic
914 - You can find the `sandbox` module at https://github.com/architect/sandbox
915
916
917### Fixed
918
919- Some Arc-supported runtimes defined in `.arc-config` files (such as `nodejs8.10`) will no longer cause `sandbox` to crash
920
921---
922
923## [5.9.4] - 2019-06-15
924
925### Added
926
927- Added ability to disable Architect managing a given function's environment variables
928 - Add an `@arc` pragma to your function's `.arc-config` file, and pass it the `env false` flag
929
930
931---
932
933## [5.9.3] - 2019-05-29
934
935### Fixed
936
937- Corrects URI encoding when accessing local static assets in _static, fixes #390
938- Warns users of static deployments of files approaching the payload limit of Lambda, fixes #387
939- Fixes static deploy errors of unknown file types
940
941
942---
943
944## [5.9.0 - 5.9.2] - 2019-05-23
945
946### Added
947
948- CloudFormation support! 🚀
949 - `npx package` will export the current `.arc` file to `sam.json` and print further instructions for deploying
950 - Currently only `@http`, `@static` and `@tables` pragmas are supported; you can track the other pragmas dev (or submit a PR!) here at #386
951 - Any env vars in `.arc-env` are automatically applied to the CloudFormation stack
952 - `.arc-config` settings are also fully supported
953 - Unfortunately CF currently has a bug with binary media types which we're tracking here https://github.com/awslabs/serverless-application-model/issues/561
954- Static asset fingerprinting beta!
955 - Add `fingerprinting true` to your `@static` pragma to enable fingerprinting
956 - Add `ignore` followed by a two-space indented list to ignore certain files from `public/`
957 - [More information here](https://arc.codes/reference/static)
958- Added new flag for pruning old static assets: `npx deploy [--static] --prune`
959- Added ability to completely disable shared folder copying into functions
960 - Add an `@arc` pragma to your function's `.arc-config` file, and pass it the `shared false` flag
961- Ruby and Python local runtime support
962 - `.arc-config` with `runtime` of either `ruby2.5` or `python3.7` works on localhost (make sure you have python and ruby installed!)
963
964
965### Fixed
966
967- Hydration (and other things that depend on hydrator operations) should now work more reliably on non-UNIXy machines
968
969
970---
971
972## [5.8.7] - 2019-05-21
973
974### Fixed
975
976- Fixes lack of `console.[warn|error|trace]` output in sandbox console
977
978
979## [5.8.5 - 5.8.6] - 2019-05-15
980
981### Changed
982
983- Default Lambda runtime is now Node 10.x (from Node 8.10)
984- Added simple rate limits to `npx config` and `npx config --apply`
985- Updated dependencies
986
987
988---
989
990## [5.8.0 - 5.8.4] - 2019-05-08
991
992### Added
993
994- Adds `npx inventory nuke -f` for deleting DynamoDB tables and S3 buckets (even if they have contents)
995 - Also adds aliases: `npx inventory -nf`, `npx inventory -fn`
996- Scheduled function state enabled / disabled flag in `.arc-config` with `npx config`
997- Concurrency `0-1` flag in `.arc-config` with `npx config` (applies to all function types)
998- Support for custom routes in WebSocket API Gateways
999 - `@ws` now accepts routes defined in `.arc`
1000 - To use these custom routes, the client message must contain an `action` key that is the name of the route
1001
1002
1003### Fixed
1004
1005- DynamoDB tables and indexes now enqueue during create; fixes #268
1006- Sync queue visibility to function timeout; fixes #204
1007- Verifies queue resources deleted with `npx inventory nuke`; fixes #132
1008- Enhanced cron() and rate() validatation; fixes #148
1009- Now `npx inventory nuke` destroys Lambdas and CloudWatch Events rules
1010- Enhanced error reporting for bad creds or bad arcfiles (closes #339, #364)
1011
1012
1013### Changed
1014- New GitHub name! Find us at: [github.com/architect](https://github.com/architect)
1015 - 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`
1016 - Special thanks to @pug132 for the name (and a big hat-tip to @mikemaccana)!
1017- scheduled functions always putRule on `npx create` (fixes #326)
1018
1019
1020---
1021
1022## [5.7.0] - 2019-04-17
1023
1024### Added
1025
1026- Support for AWS layers! /ht @julianduque
1027 - 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)!
1028- Support for additional runtimes: `python3.7` and `ruby2.5`!
1029 - The list also includes: `nodejs8.10`, `python3.6`, `go1.x`, `dotnetcore2.1`, and `java8`
1030 - Specify `runtime $yourRuntime` in the `@aws` section of your project manifest, or `.arc-config` files
1031 - Of course, you can also add the runtime of your choosing by way of layer support
1032- Support for `application/binary-octet` & `multipart/form-data` requests, fixes #353
1033 - Requests with those two `Content-Type` headers will produce a `base64` object in the `body` object, like so: `body: {base64: 'R28gR2lhbnRzIQ=='}`
1034 - Empty request bodies will still produce an empty object (e.g. `body: {}`)
1035
1036
1037### Fixed
1038
1039- `config [--apply]` now has an easier to read layout, improved diffing, and instructions on how to apply changes
1040- Added resource creation error handling and validation to `deploy`
1041- Invalid runtime settings emit a friendly warning about defaulting to `node8.10`
1042
1043
1044### Changed
1045
1046- `get /` no longer required by `@http`
1047- Updated dependencies (most notably `@architect/parser` to support `runtime` and `layers` settings)
1048- Resource creation error handling moved into common utils (internal)
1049
1050
1051---
1052
1053
1054## [5.6.3] - 2019-04-08
1055
1056### Fixed
1057
1058- Fixes WebSocket support in `sandbox`; fixes #328 /ht @rschweizer
1059
1060
1061### Changed
1062
1063- Cleans up http invocation for doc content-types in `sandbox`
1064- Slightly better rate limit error message
1065
1066
1067---
1068
1069
1070## [5.6.1] - 2019-04-06
1071
1072### Added
1073
1074- Adds `req.httpMethod` and `req.queryStringParameters`
1075
1076
1077### Removed
1078
1079- Removes deprecated code paths
1080
1081
1082---
1083
1084
1085## [5.6.0 - 5.6.1] - 2019-04-04
1086
1087### Added
1088
1089- Enables both text and binary file transit in newly provisioned Arc apps
1090- Adds the same capability to `sandbox`
1091- 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)
1092- Adds `req.httpMethod` and `req.queryStringParameters`
1093- Removes deprecated code paths
1094
1095---
1096
1097
1098## [5.5.10] - 2019-03-15
1099
1100### Added
1101
1102- Cache-control header support to `sandbox`
1103 - Default for local dev environment is not to send any `cache-control` header
1104 - If specified, `cache-control` passes through
1105
1106
1107---
1108
1109## [5.5.9] - 2019-03-13
1110
1111### Added
1112
1113- Cache-control header support; if not specified, defaults to:
1114 - HTML + JSON: `no-cache, no-store, must-revalidate, max-age=0, s-maxage=0`
1115 - Everything else: `max-age=86400`
1116 - This change only applies to Architect apps provisioned from this version forward
1117
1118### Fixed
1119
1120- Default `content-type` response of `application/json` is now `application/json; charset=utf-8;`
1121
1122### Changed
1123
1124- Updated dependencies
1125
1126---
1127
1128## [5.5.6 - 5.5.8] - 2019-02-28
1129
1130### Fixed
1131
1132- Now properly deletes the entire CloudWatch log group when nuking; fixes #311 /ht @mikeal
1133- Fixes `sandbox` to work properly when `content-type` has charset assignment; #303, #305 /ht @hada-unlimited
1134- Fixes issue with `audit` breaking on `@ws` functions; #311 /ht @mikeal
1135- `sandbox` now accepts `statusCode`, in addition to `status` and `code`; fixes #323
1136
1137
1138---
1139
1140## [5.5.5] - 2019-02-22
1141
1142### Fixed
1143
1144- Fixes ordering logs by last event /ht @mikeal
1145
1146
1147---
1148
1149## [5.5.2 - 5.5.4] - 2019-02-20
1150
1151### Fixed
1152
1153- `logs` forces descending order
1154- Query params no longer trigger index.html override for `sandbox`
1155- Adds support for `text/tsx` in `/public`
1156
1157
1158---
1159
1160## [5.5.1] - 2019-02-08
1161
1162### Changed
1163
1164- Updated dependencies
1165
1166### Removed
1167
1168- `test:watch` script and `tape-watch` devdep (due to multiple dependencies with CVEs)
1169
1170
1171---
1172
1173## [5.5.0] - 2019-02-03
1174
1175SPA support: mount S3 on the `/` of API Gateway
1176
1177### Added
1178
1179- `ANY /{proxy+}` will now route any 'not found' to the HTTP Lambda `src/http/get-index`
1180 - 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)
1181- `ANY /_static/{proxy+}` will proxy to S3 buckets defined by `@static` (if you want to skip proxying through Lambda)
1182- Companion library `@architect/functions` also gained `arc.proxy.public` superpower for proxying all requests NOT defined by `.arc` to the `@static` S3 buckets
1183
1184[For more about single page apps with Architect see there docs here.](https://arc.codes/guides/spa)
1185
1186
1187### Changed
1188
1189- If `@http` is defined, then `get /` must also be defined
1190- `npx sandbox` now mounts `/public` on `http://localhost:3333/_static` to match the deployed API Gateway S3 proxy
1191
1192
1193---
1194
1195## [5.0.6] - 2019-01-25
1196
1197### Added
1198
1199- Improvements to build plugins system (did you know Architect has a build plugins system?)
1200 - Now supports NPM scoping (e.g. `@architect/arc-plugin-node-prune`)
1201 - Build preparation order now runs pre-deploy build plugins last (after dependency hydration)
1202 - 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`!
1203
1204
1205### Fixed
1206
1207- Fixes `create` breaking if `@ws` is not present in `.arc`, #276
1208
1209
1210---
1211
1212## [5.0.4] - 2019-01-24
1213
1214### Added
1215
1216- `repl` now respects environments, allowing you to connect to your remote databases with the `NODE_ENV` environment variable
1217
1218
1219### Fixed
1220
1221- `repl` was being clobbered by `@architect/data`'s own implementation; fixed in `architect/arc-data` #12, dependency updated
1222
1223
1224### Changed
1225
1226- Updated dependencies
1227
1228
1229---
1230
1231## [5.0.2] - 2019-01-22
1232
1233### Added
1234
1235- Support for `@ws` in `.arc` for generating WebSocket Lambdas and API Gateway endpoints
1236- Support for WebSocket Lambdas in the local sandbox
1237- WebSocket Lambdas support in `inventory`, which in turn powers most other workflows
1238
1239
1240### Removed
1241
1242- Support for `@slack` as the more generic `@http` Lambdas support that use case better
1243
1244
1245### Fixed
1246
1247- Fixes `@indexes` creation bug
1248- Runs `npm i` during `hydrate --update`, resolving a long-standing NPM issue where package-lock files may fall out of sync
1249- Fixed: on Windows, S3 assets will be correctly created relative to their location beneath `public` rather than their full paths.
1250
1251### Changed
1252
1253- Updated dependencies
1254
1255
1256---
1257
1258## [4.5.6] - 2019-01-14
1259
1260
1261### Fixed
1262
1263- Fixes callback in _create-code task, fixes #263
1264
1265
1266### Changed
1267
1268- Improved error handling in NPM operations
1269
1270
1271---
1272
1273## [4.5.5] - 2019-01-11
1274
1275
1276### Fixed
1277
1278- In Windows, NPM no longer fails with `undefined`, fixes #261
1279
1280
1281---
1282
1283## [4.5.4] - 2019-01-10
1284
1285
1286### Changed
1287
1288- Improved status reporting during `deploy` and `create`
1289
1290
1291### Fixed
1292
1293- Fixes cases where hydration was crashing single function deployments, and deployments that execute `create` for missing resources
1294
1295
1296---
1297
1298## [4.5.1] - 2019-01-08
1299
1300
1301### Changed
1302
1303- `hydrate` refactor and API
1304 - NPM operations are now queued and concurrently processed (env var `ARC_MAX_NPM`, defaults to 10) /ht @grncdr
1305 - Vastly improved NPM error handling and related deployment reliability (fixes #141 + #151)
1306 - Now hydrates (and updates) deterministically from the current .arc manifest, as opposed to globbing
1307 - All NPM operations now use `npm ci` for more consistent behavior across environments
1308 - Updates `deploy` to use `hydrate` API, and `sandbox` to use new shared code copier module
1309- DynamoDB tables now use on-demand/pay-per-request billing mode, mitigating the need for capacity planning /ht @alexdilley
1310- `inventory` now supplies its own Arc project data, allowing it to be called as needed without relying on `util/init`
1311
1312
1313### Fixed
1314
1315- Freshly created Functions are now properly hydrated with shared code (if available and appropriate; fixes #241)
1316- Running `create` on already existing projects now runs orders of magnitute faster
1317- `.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)
1318- `deploy` now respects `--delete` flag when deploying the whole project
1319- Improved progress reporting in `CI` mode, and for `hydrate`, `create`, and `deploy`
1320
1321
1322### Added
1323
1324- New command: `hydrate --shared [--update]` - hydrates and/or updates `src/shared` and `src/views` (if available)
1325- Added test run watcher script /ht @filmaj
1326
1327
1328---
1329
1330## [4.4.12] - 2018-12-23
1331
1332
1333### Removed
1334
1335The following folders are no longer required nor autogenerated:
1336
1337- `src/shared`
1338- `src/views`
1339- `/public`
1340
1341Functionality 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.
1342
1343
1344---
1345
1346## [4.4.11] - 2018-12-19
1347
1348
1349### Added
1350
1351- Updates `sandbox`, adding minor performance tweaks now, and setting up for future enhancements
1352 - Updated `sandbox` to asynchronously read files when invoking a Lambdas
1353 - Updates runtime handling in `sandbox` to make it easier to add additional runtimes
1354 - Each runtime now lives in its own function, which also enables process forking later on
1355
1356
1357---
1358
1359## [4.4.10] - 2018-12-18
1360
1361
1362### Added
1363
1364- New logo (added to readme)! /ht @amberdawn
1365- `hydrate` and `deploy` now install dependencies in `src/shared` and `src/views` (#240)
1366- `QUIET` boolean env var suppresses init header (fixes #238)
1367 - Helpful for piping data to disk, e.g. setting up new users on an Architect project with `QUIET=1 npx env > .arc-env`
1368- `app.arc` app filename supported as a non-dotfile alternative to `.arc` (#239)
1369
1370
1371### Changed
1372
1373- Static asset deploys now exclude default `public/readme.md` file
1374- Improved `hydrate` progress and completion confirmation
1375- Adds Architect version back into the init header
1376
1377
1378### Fixed
1379
1380- `hydrate` was not properly globbing (and thus, not hydrating) `src/shared` contents
1381
1382
1383---
1384
1385## [4.4.9] - 2018-12-16 (merge commit, no changes)
1386
1387
1388---
1389
1390## [4.4.8] - 2018-12-12
1391
1392
1393### Added
1394
1395- 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
1396 - `SANDBOX_TIMEOUT` is overridden by any directory-specific `.arc-config` files
1397
1398
1399### Changed
1400
1401- Default `sandbox` timeout is now symmetrical with Architect's default Lambda timeout time of 5 seconds
1402
1403
1404---
1405
1406## [4.4.7] - 2018-12-11
1407
1408
1409### Added
1410
1411- Form-encoded POST values can now be sent enclosed in single quotes /ht @herschel666
1412
1413
1414### Changed
1415
1416- Skip logging when `@static` isn't deployed
1417- Additional hardening of `sandbox` handling of JSON responses emitted from `@architect/functions`
1418- Preliminary / prototype commits for outputting CloudFormation from .arc
1419- Preliminary / prototype commits in the direction of adding arbitrary header support /ht @mweagle
1420
1421
1422### Fixed
1423
1424- Issue where `arc.http` JSON responses were crashing `sandbox` due to an encoding mismatch
1425- Issue where `ARC_LOCAL` env var wasn't being properly respected by `sandbox` events
1426
1427
1428---
1429
1430## [4.4.5] - 2018-12-7
1431
1432
1433### Added
1434
1435- Local `@queues` now available in `sandbox`
1436- Big ups to @grncdr for this feature!
1437
1438
1439### Fixed
1440
1441- `hydrate` wasn't updated to use the new progress indicator, and would fail when used – no longer!
1442
1443
1444---
1445
1446## [4.4.4] - 2018-12-1
1447
1448
1449### Added
1450
1451- `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
1452- Big ups to @filmaj for this release, too!
1453
1454
1455---
1456
1457## [4.4.3] - 2018-11-30
1458
1459
1460### Added
1461
1462- `npx deploy static`: deploys only `@static` assets (as found in the `public/` folder)
1463 - Accepts `staging | --staging | -s` and `production | --production | -p` flags
1464- `npx deploy static --delete`: deploys static assets, and deletes remote S3 files not present locally in `public/`
1465 - Can be used with `staging` and `production` flags
1466- Big ups to @filmaj for this release!
1467
1468
1469---
1470
1471## [4.4.0] - 2018-11-27
1472
1473
1474### Added
1475
1476- Large refactor of `deploy` workflow to improve stability and reliability
1477- `deploy` now identifies missing project resources during deploy operations
1478 - Instead of failing / throwing errors, `deploy` now completes its first pass deployment
1479 - Then, once completed, `deploy` creates any resources missing from the deployment (and deploys them)
1480
1481
1482### Changed
1483
1484- `npx inventory --nuke` now destroys `@static` resources (S3 buckets) and `@events` resources (SNS Topics).
1485- New projects will no longer create `arc-sessions` tables (for use with `@architect/functions`) by default, and are now explicitly opt-in
1486- Replaces `progress` module with a lighter weight, more readily cross-platform homegrown solution
1487
1488
1489---
1490
1491## [4.3.14] - 2018-11-26
1492
1493
1494### Changed
1495
1496- `logs` command results now sorted chronologically
1497
1498
1499### Fixed
1500
1501- Fixes console leaking of large responses in `sandbox`
1502
1503
1504---
1505
1506## [4.3.13] - 2018-11-24
1507
1508
1509### Fixed
1510
1511- `sandbox` was broken in the JWE changeover
1512- Fixes some broken tests
1513
1514
1515### Removed
1516
1517- Unnecessary session table test stubs
1518
1519
1520---
1521
1522## [4.3.12] - 2018-11-23
1523
1524
1525### Changed
1526
1527- New default for Architect sessions is based on JWE
1528- DynamoDB sessions are still available, but [now opt-in](https://arc.codes/guides/sessions)
1529- `sandbox` now matches the 6MB request payload limit of Lambda /ht @herschel666
1530
1531
1532---
1533
1534## [4.3.10] - 2018-11-19
1535
1536
1537### Added
1538
1539- dotfiles are now included in Lambda deployments
1540
1541
1542---
1543
1544## [4.3.9] - 2018-11-15
1545
1546
1547### Changed
1548
1549- Architect parser now accepts multiple spaces between http verb and path in `@http` functions
1550
1551
1552### Fixed
1553
1554- `sandbox` now properly pretty prints paths
1555
1556
1557---
1558
1559## [4.3.8] - 2018-11-14
1560
1561
1562### Added
1563
1564- Additional S3 deploy tests
1565
1566
1567---
1568
1569## [4.3.7] - 2018-11-13
1570
1571
1572### Changed
1573
1574- `sandbox` clears async function timeout if execution is faster than specified timeout
1575
1576
1577---
1578
1579## [4.3.6] - 2018-11-12
1580
1581
1582### Added
1583
1584- Better async error handling (and more helpful error text) in sandbox
1585- Trap and present friendly error when async functions don't return a value in sandbox
1586- `sandbox` returns a promise if no callback is specified
1587- Adds repl
1588
1589
1590---
1591
1592## [4.3.1] - 2018-11-12
1593
1594
1595### Fixed
1596
1597- Error with `/public` folder in sandbox
1598
1599
1600---
1601
1602## [4.3.0] - 2018-11-12
1603
1604
1605### Added
1606
1607- `arc.sandbox.start` now accepts a regular node errback as the last arg
1608
1609
1610---
1611
1612## [4.2.2] - 2018-11-12
1613
1614
1615### Added
1616
1617- This changelog!
1618
1619
1620### Fixed
1621
1622- Removed generated test coverage files from NPM package bundle
1623- Inline help typos
1624
1625
1626---
1627
1628## [4.2.1] - 2018-11-09
1629
1630
1631### Added
1632
1633- `CI` env boolean for disabling `deploy` progress indicator in CI
1634
1635
1636---
1637
1638## [4.2.0] - 2018-08-12
1639
1640
1641## Added
1642
1643- CORS support for `sandbox`
1644
1645
1646## Fixed
1647
1648- CORS bug in HTTP functions
1649- Issue with `sandbox` not properly passing callbacks if used as a module
1650
1651
1652---
1653
1654## [4.1.3] - 2018-11-6
1655
1656
1657### Added
1658
1659- Massive tests refactor, shout out to @filmaj!
1660 - Added tests for many important workflows
1661 - Code coverage now tracked with Istanbul
1662- Architect's CI is now public via TravisCI
1663
1664
1665---
1666
1667## [4.1.2] - 2018-10-31
1668
1669
1670### Changed
1671
1672- Roughed in resource flagging (not yet ready, though)
1673
1674
1675### Fixed
1676
1677- Restored accidentally removed `readme.md`
1678
1679
1680---
1681
1682## [4.1.1] - 2018-10-31
1683
1684
1685### Added
1686
1687- `logs` workflow!
1688- Command line flags for various workflows:
1689 - `audit`: `apply`, `--apply`, `-a`
1690 - `config`: `apply`, `--apply`, `-a`
1691 - `create`: `local`, `--local`, `-l`
1692 - `deploy`: `production`, `--production`, `staging`, `--staging`, `public`, `--public`, `/public`, `lambda`, `--lambda`, `lambdas`, `--lambdas`, `functions`, `--functions`
1693 - `dns`: `nuke`, `--nuke`, `-n`, `route53`, `--route53`, `-r`
1694 - `env`: `verify`, `--verify`, `-v`, `remove`, `--remove`, `-r`
1695 - `hydrate`: `update`, `--update`, `-u`
1696 - `inventory`: `nuke`, `--nuke`, `-n`, `--nuke=tables`, `verify`, `--verify`, `-v`
1697 - `sandbox`: `production`, `--production`, `-p`, `staging`, `--staging`, `-s`, `testing`, `--testing`, `-t`
1698- Additional path validation for leading and trailing special characters
1699
1700
1701### Changed
1702
1703- Refactored `deploy` command to support additional command line flags, and surgical deploys of just `/public`, or just Lambdas
1704- Copy fixes for deployment workflow
1705- Made boilerplate HTTP functions a bit more minimal
1706- Improved `sandbox` testing
1707
1708
1709---
1710
1711## [4.1] - 2018-10-24
1712
1713
1714### Added
1715
1716- Automagical `src/views` folder: copies contents into all `HTTP GET` functions' `node_modules/@architect/views`
1717- `@views` pragma, overrides bulk `src/views` copy, and only copies into specified functions
1718- More information on `src/views` and `@views` [can be found here](https://blog.begin.com/serverless-front-end-patterns-with-architect-views-cf4748aa1ec7)
1719- Adds ability to use the following special characters in static URL parts: `-` (dash), `.` (period), `_` underscore
1720- New HTTP function validation logic:
1721 - HTTP functions must begin and end with a letter or number
1722 - Cannot create URL params that contain special chars (except leading `:`, of course)
1723- Adds command-line flags:
1724 - `npx create`:
1725 - `local`, `--local`, `-l`
1726 - `npx deploy`:
1727 - `production`, `--production`, `-p`
1728 - `staging`, `--staging`, `-s`
1729- New [Examples repo](https://github.com/architect/examples)
1730
1731
1732### Changed
1733- Some light boilerplate code cleanup
1734- [#168](https://github.com/architect/architect/issues/168) Fixed issue where Architect parser was missing `@http` support in JSON + YAML manifests
1735- [#164](https://github.com/architect/architect/issues/164) Fixed issue in Windows where Architect would try to copy files over itself
1736
1737
1738---
1739
1740## [4.0] - 2018-10-20
1741
1742
1743### Added
1744
1745- `@http` pragma, now the default way to create Lambda functions for the web
1746 - Supports fully dynamic Content-Type, Status Code
1747 - Supports all HTTP methods
1748 - CORS support with a boolean flag
1749- `public` folder, now the default way to sync static assets to S3
1750- `JSON` & `YAML` support for the `.arc` manifest
1751- Per-Lambda function configuration support with `.arc-config` files
1752- Per-Lambda function IAM roles support with `role.json` files
1753
1754
1755### Changed
1756
1757- Simpler package name (`npm i @architect/architect`)
1758- New GitHub name ([https://github.com/architect/architect](https://github.com/architect/architect))
1759- Smarter rate-limiting for deployments of large (50+ function) projects
1760- Complete docs revamp with new sample projects at [arc.codes](https://arc.codes)
1761- Fix for obscure bug where `server.close`causes a TypeError
1762- Readme file cleanup
1763
1764
1765### Removed
1766
1767- `.static` folder has been deprecated in favor of the new `public` folder
1768- Statically bound Content-Type web functions (i.e. `@html`, `@css`) are deprecated
1769 - `sandbox` will no longer bootstrap these kinds of functions
1770 - `create` will no longer make these kinds of functions
1771 - However, `deploy` still supports deploying these legacy functions
1772
1773
1774---
1775
1776The 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).