forked from preaction/Yancy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
1858 lines (1321 loc) · 66.3 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changelog for Yancy
{{ $NEXT }}
1.088 2021-12-18 20:24:24-06:00 America/Chicago
[Added]
- Added "join" configuration to Yancy controller. This allows for easy
adding of related data to a basic route.
[Fixed]
- Fixed join handling on the Memory backend from the additions made in
1.086.
1.087 2021-12-14 16:09:32-06:00 America/Chicago
[Added]
- Added "query" and "query_p" methods to Yancy::Backend to run raw
queries on the backend. This can be used when one needs more power
than can be provided by Yancy's backend API.
1.086 2021-12-11 19:04:23-06:00 America/Chicago
[Fixed]
- Yancy now allows foreign key relationships on any columns, not just
the foreign table's primary key.
1.085 2021-12-03 22:47:36-06:00 America/Chicago
[Added]
- Override the default model class by passing in a string containing
the name of the model class to use.
[Fixed]
- Fixed some bugs with model/schema interactions
- Joins now always use schema names, not property names
1.084 2021-11-03 11:56:57-05:00 America/Chicago
*WARNING*: The automatically-generated OpenAPI spec in the Yancy
Editor is deprecated and will be removed in a future release. Use
Yancy::Plugin::OpenAPI instead.
1.083 2021-10-31 15:52:29-05:00 America/Chicago
[Added]
- Added Yancy::Backend::Memory, an in-memory backend to be used for
testing.
1.082 2021-10-29 09:54:17-05:00 America/Chicago
[Added]
- Added scheme annotations to Yancy::Model. Now you can pass in
a schema structure with documentation and it will be correctly
propagated. This is one step closer to Yancy using Yancy::Model for
everything internally.
[Fixed]
- Fixed examples to upgrade Yancy to fix JSON::Validator issue
1.081 2021-10-26 09:29:11-05:00 America/Chicago
DEPRECATED: Filters (input/output). Using Yancy::Model is a much
better way to achieve the same thing. See Yancy::Guides::Model.
Over the next few releases, Yancy's internals will begin to use the
model API exclusively. Existing filters will work until v2.
[Added]
- Added 'yancy.model' helper to get a model object from the current
schema.
- Moved validation to Yancy::Model::Schema. All create/set operations
now flow through Yancy::Model::Schema.
1.080 2021-10-24 19:15:41-05:00 America/Chicago
[Fixed]
- Upgraded Mojolicious::Plugin::OpenAPI requirement for new
JSON::Validator requirement. Thanks @eserte for reporting this
issue! [Github #138]
1.079 2021-10-24 14:58:31-05:00 America/Chicago
[Fixed]
- Fixed compatibility with JSON::Validator v5. Thanks @eserte for
reporting this issue! [Github #137]
1.078 2021-10-17 11:58:16-05:00 America/Chicago
[Fixed]
- Fixed links to IRC channel on Libera.chat. Thanks @kiwiroy and
@lindleyw! [Github #135]
- Fixed links in documentation from renaming in 1.070. Thanks
@lindleyw! [Github #136]
1.077 2021-09-05 21:21:37-05:00 America/Chicago
[Fixed]
- Fixed model schema class fallbacks failing. By default, a simple
skeleton Schema/Item object should be created if there is no more
specific class to use.
- Fixed model items to act more like item hashrefs
- Fixed model schema get() method to pass options hash
1.076 2021-08-11 13:04:19-05:00 America/Chicago
[Added]
- Added has-a and has-many JOIN syntax to list() method, including
the ability to query related tables. Yancy::Model could now
virtually replace a DBIx::Class model layer.
[Fixed]
- Improved Yancy::Guides::Schema and Yancy::Guides::Model to read
and scan more easily.
1.075 2021-08-07 15:03:12-05:00 America/Chicago
*NOTE*: The `x-view` directive in schemas is deprecated and will be
removed in v2. The Yancy::Model API allows for the same
functionality in a cleaner, more powerful way. The Yancy editor and
internals will be updated before v2 to use Yancy::Model methods so
that everything works together.
[Added]
- Added basic has-a and has-many JOIN syntax to all backends' get()
method. Now you can fetch related data in a single query!
[Fixed]
- Fixed link to skeleton app. Thanks @thowe for reporting this
issue!
1.074 2021-06-18 12:55:53-05:00 America/Chicago
[Added]
- Added Yancy::Plugin::Roles for role-based access controls.
- Added Yancy base application class with password auth and
role-based access controls. This makes starting a new app as easy
as `use Mojo::Base 'Yancy'`!
[Fixed]
- Fixed compatibility with JSON::Validator 4.20
1.073 2021-06-07 11:35:37-05:00 America/Chicago
[Added]
- Password auth now respects the `return_to` flash value so that
users can be redirected to the login form. Thanks @flash548 for
submitting this patch! [Github #134]
1.072 2021-05-25 23:32:42-05:00 America/Chicago
- Fixed IRC channel: We've moved to libera.chat
1.071 2021-05-24 12:01:18-05:00 America/Chicago
[Added]
- (Experimental) Added Yancy::Model to organize model-layer code
(business logic).
1.070 2021-05-08 20:51:45-05:00 America/Chicago
[Fixed]
- Fixed issues with `format` changes in Mojolicious 9.11. Thanks
@kiwiroy for reporting and fixing these issues! [Github #131,
#132, #133]
- Reorganized documentation into Guides, more like Mojolicious. This
is a work-in-progress, so there's lot more to do.
- Removed fallback template rendering from standalone app. The
standalone app is going to evolve into a base class for starting
new Yancy apps, and this feature does not fit well.
1.069 2021-03-04 09:41:27-06:00 America/Chicago
[Fixed]
- Fixed compatibility with Mojolicious 9 and JSON::Validator 4.
Thanks @mjaix for reporting this issue!
1.068 2020-12-19 16:33:19-06:00 America/Chicago
[Fixed]
- Added "deprecated" warnings to abstracts for deprecated modules.
Thanks @mohawk2! (Github #121, #122)
- Fixed session cookie being autovivified with empty data. Now the
session cookie will only be sent to the client when they log in.
This helps satisfy GDPR compliance. Thanks @uniejo for submitting
this patch! (Github #128)
- Fixed warnings thrown from JSON::Validator when "textarea" is
used. Thanks @stephan48 for reporting this issue! (Github #127)
1.067 2020-11-15 22:39:19-06:00 America/Chicago
[Fixed]
- Prevent authentication return URL from redirecting somewhere
offsite, which is a potential security risk:
http://cwe.mitre.org/data/definitions/601.html
- Fixed missing logs when an exception is caught. Thanks @stephan48
for reporting this! [Github #126]
- Fixed editor not displaying Internal Server Errors. It now
displays an alert box with a button to show more details. Thanks
@stephan48 for reporting this issue! [Github #127]
1.066 2020-08-07 19:45:13-05:00 America/Chicago
[NOTE]
- Yancy now scans your database schema by default. To disable this,
add `read_schema => 0` to your Yancy plugin configuration.
[Added]
- Added push updates to the table component. This is still
experimental, but it allows a table on a page to automatically
update when data is changed.
- Added an example application that uses the table component with
push updates: The ETL Viewer.
[Fixed]
- Fixed query params not being passed through the table component.
Now any search on the page will be shown in the table.
- Rewrote the primary Yancy docs to emphasize drop-in administration
of existing databases, Yancy's primary use-case.
1.065 2020-07-29 22:08:56-05:00 America/Chicago
[Added]
- Added templates for foreign key display fields. This means you can
see (and search) multiple fields when resolving a foreign key
record.
- Added a 'yancy/component/table' Vue component. This component
accepts a URL to a "list" and displays the items. Users can
navigate pages and sort the table asynchronously. This is the
first of many future Vue components that can be used for
progressive enhancement and rapid development. These will also be
used to build the next version of the editor app.
- Added a "feed" action to Yancy::Controller::Yancy. The feed action
opens a websocket to first send the same response as the "list"
action: A page of items. Then, it polls the database periodically
and sends any new items, updated items, or deleted items, keeping
the page of items in-sync with the client. Look for some example
applications using this soon!
[Fixed]
- Fixed the link in the cookbook to the limited-editor example.
Thanks @joshrabinowitz for the patch! [Github #120]
[Other]
- Added Northwind example application, along with some other
Cookbook entries and example apps.
1.064 2020-06-25 23:57:58-05:00 America/Chicago
[Added]
- Added the "binary" format for string fields to store binary data.
These fields will not be displayed in the editor (yet), but could
be another way of accepting file uploads in the future... Thanks
@mohawk2 for doing most of this work!
[Fixed]
- Fixed performance when reading schemas with hundreds of tables:
The foreign key detection was O^2 :(. Thanks @joshrabinowitz for
help debugging this issue! [Github #119]
- Fixed very long values from breaking the list view in the editor.
Now the editor caps the width of a column, prevents wrapping, and
truncates the field with ellipses if needed. If necessary, the
table can be scrolled horizontally.
- Fixed the editor list view to display a more useful set of columns
if no x-list-columns are defined: Any column that is not hidden or
a binary column will be shown in the list view. Thanks
@joshrabinowitz for the idea! [Github #46]
1.063 2020-06-24 21:51:10-05:00 America/Chicago
[Fixed]
- Added missing "offset" field to OpenAPI spec. Thanks @mario-minati
for reporting this! [Github #117]
- Fixed being able to give bad objects to the Yancy backend (for
example, a very, very old Mojo::MySQL). Thanks @joshrabinowitz for
reporting and debugging this issue!
- Added deprecation notices for some configuration values that were
long ago moved to the Editor plugin (route, info, host, return_to).
Thanks @mario-minati for reporting this! [Github #116]
[Other]
- The OpenAPI spec is fully internationalized. If anyone would like
to start translating Yancy, let me know!
1.062 2020-06-16 19:58:55-05:00 America/Chicago
[Fixed]
- Fixed missing $match parameter in OpenAPI spec for list actions.
Thanks @mario-minati for reporting this! [Github #114]
- Added a few more i18n strings to the lexicon.
- Fixed DBIx::Class backend not finding schemas and foreign keys
when the result name did not match the table name. Thanks
@mario-minati for help debugging this! [Github #112]
1.061 2020-06-10 10:49:12-05:00 America/Chicago
[Fixed]
- Fixed UTF-8 error in POD. Thanks @borisdaeppen for the patch!
[Github #110]
- Fixed issues in OpenAPI specs not validating w/ JSON::Validator
v4.00. Thanks @eserte for the report! [Github #111]
[Docs]
- Fixed an issue in the Yancy::Controller::Yancy docs where the
`:id` placeholder was not explained correctly: This needs to be
the name of the ID field (or fields) in order to work.
1.060 2020-06-07 16:25:43-05:00 America/Chicago
[Fixed]
- Fixed editor not working with any Markdown fields, a regression
caused by v1.057. Thanks @uniejo for the patch! [Github #109]
This time, there are tests to prevent further regressions...
1.059 2020-06-06 17:53:43-05:00 America/Chicago
[Added]
- Added Yancy::I18N and started translating parts of the Yancy
editor. Much more work to do here, but it's a start!
[Fixed]
- Fixed no response from the server when user tries to register
while registration is disabled. Thanks @uniejo for the patch!
[Github #108]
- Fixed finding foreign keys on databases with multiple catalogs or
schemas. Thanks @sammakkoinen for the report! [Github #107]
1.058 2020-06-03 14:15:16-05:00 America/Chicago
[Fixed]
- Increased File::Temp version to fix SQLite locking problem during
tests on BSD systems. Thanks @eserte for reporting this and
explaining the fix! [Github #106]
1.057 2020-05-30 21:37:23-05:00 America/Chicago
[Important!]
- Mojolicious 8.50 raised its minimum Perl requirement to 5.16, and
in this version, Yancy has done the same.
- The undocumented `id_field` attribute has been removed to support
composite keys. Please make sure that your URL placeholders are
named after the field in the schema, not just `id`.
[Added]
- Added composite keys in schemas. Now backends can handle tables
with a multi-column primary key.
[Fixed]
- Fixed the editor not working when a Markdown field was
misconfigured.
1.056 2020-04-26 13:34:24-05:00 America/Chicago
[Added]
- Added internationalization (i18n) hooks to the login form via
Locale::Maketext. Thanks @pavelsr for the patch! [Github #102,
#103]
i18n is now on the v2 roadmap and will be completed before the
v2.000 release.
[Fixed]
- Fixed test failures on older versions of Mojolicious (before
`curfile` was part of Mojo::File). Thanks @eserte! [Github #101]
- Fixed set/delete hooks to be able to change which item ID is being
set/deleted.
1.055 2020-04-24 21:01:05-05:00 America/Chicago
[Added]
- Added controller action hooks to Yancy controllers. These hooks allow for editing
data during certain events:
* before_render - For the get/list actions. Add more data or format
item data before rendering.
* before_write - For set actions. Edit the submitted item before
saving in the database
* before_delete - For delete actions. Delete related data, or
write some logging.
This feature will replace the `x-filter-output` feature, which
will be removed in v2.0.
[Fixed]
- Fixed issue with reading Postgres column names requiring quotes.
Now these schemas can be read correctly.
- Fixed issue with DBIx::Class schemas with column names requiring
quotes. Now these schemas can be deployed correctly.
- Fixed `require_user` to accept `1` as "require a user to be
logged-in".
1.054 2020-04-19 16:22:12-05:00 America/Chicago
[Important!]
- The 'yancy.auth.login' route is now named 'yancy.auth.login_form'
to match the other login form routes.
[Added]
- Added disabling of CSRF field in Form plugins. Use this to build
a form without a CSRF token inside.
- Added top-level OR matching to `match` utility. Now the
`require_user` authorization method can express more options.
- Added `$match: any` to controller list actions. This changes the
filter from "AND" to "OR", returning results that match any filter
instead of requiring them to match all filters.
[Fixed]
- Fixed test failure with too old versions of
Test::Mojo::Role::Selenium. Thanks @eserte for reporting this!
[Github #98]
- Fixed `yancy.form.form_for` helper being called with `app` causing
CSRF failures. Now the Form helper will warn you when called
without a request that can build a useful CSRF token. Thanks
@pavelsr for reporting this! [Github #95]
- In the controller list actions, '$order_by' can now be a field
name to sort by that field ascending. Previously, the 'asc:' or
'desc:' prefix was required.
- Fixed foreign key fields not working when the first item in
x-list-columns was using a template. Now, the foreign key field
searches all fields in the template and uses the template to
display the current value of the field. Thanks @OpossumPetya for
reporting this issue! [Github #96]
- Removed extra page loads from the authentication workflow:
- The login form is now displayed on the unauthorized error page
- Logging out brings the user back to where they were so, if
necessary, they can log in again
- Fixed user being returned to the wrong place after authentication:
- If the login form was displayed by the login page, the user
is returned to the previous page
- Otherwise, the login form was displayed on the page the user
wants, so they are directed back to that page
- The `return_to` query param can be used to override where
a user is returned in either circumstance
[Docs]
- Made the docs for Yancy::Controller::Yancy and
Yancy::Controller::Yancy::MultiTenant easier to read.
- Added undocumented `login_form` helper to auth plugins
- Added examples of how to use Auth plugin routes and helpers.
Thanks @pavelsr for reporting this issue! [Github #100]
1.053 2020-04-14 22:56:26-05:00 America/Chicago
[Added]
- Added `yancy.mask` filter to mask field values (hide parts of
e-mail addresses, mask SSNs, etc...)
[Fixed]
- Actually fixed output filters (`x-filter-output`) for both the
`get` and `list` helpers. Now with tests so that it stays fixed!
Thanks @rmallah for reporting and testing this issue!
1.052 2020-04-13 23:51:56-05:00 America/Chicago
[Fixed]
- Fixed a case where a SQLite field could be wrongly seen as an
auto-increment field when two columns have similar names.
- Fixed output filters (`x-filter-output`) to be executed by
`yancy->get`. This was a feature that was formerly only in the
API, but is now available everywhere. Thanks @rmallah for
reporting this issue!
[Other]
- Added new test fixtures to make unit testing Yancy less fragile.
Tests will slowly be migrated to these new fixtures over time.
- Added a bunch of ways to identify elements in the editor, mostly
for Selenium testing but it might be useful for others...
1.051 2020-04-11 00:06:52-05:00 America/Chicago
[Important!]
- Read-only fields are now hidden in forms built by the form plugin
by default. These aren't editable, so there's no reason to display
them. Use the new "properties" configuration to show them if
desired.
- The Yancy::Plugin::Auth module's login_form method now returns
only the form itself, not the entire page. This means it is easier
to include the login form in site layouts and other pages.
[Added]
- Added "properties" configuration to Form plugins. This limits the
form to only displaying those properties. Thanks @pavelsr for the
patch! [Github #93, #94]
- Added missing login forms for Github and OAuth2 auth modules. Now
these will show up in the pluggable auth module
[Fixed]
- Added more documentation for the form plugin and the auth plugins.
- Fixed form plugin to get values from the current request. This
allows forms with errors to have the values the user had entered.
- Added more docs for x-foreign-key fields.
1.050 2020-04-07 23:07:02-05:00 America/Chicago
[Fixed]
- Fixed yes/no field values not being loaded in the editor
- Fixed extra browser history items being added in the editor
1.049 2020-04-06 23:25:50-05:00 America/Chicago
[Added]
- Added the ability for any "route" configuration to be a string.
These will automatically be made into routes for you. Thanks
@pavelsr for the suggestion! [Github #90]
- Added "yancy.auth.logout" helper and route so that any authed user
can be cleared out from any auth plugin. Thanks @pavelsr for the
suggestion! [Github #91]
[Fixed]
- Fixed a bunch of missing/broken documentation (found by @pavelsr
in #90, #91, and #92)
1.048 2020-04-05 20:59:55-05:00 America/Chicago
[Fixed]
- Fixed additional editor instances using the original editor's API
URL. This allows additional editors to have different schemas,
hiding some fields from some users.
- Fixed MultiTenant controller not allowing JSON post. Now the
MultiTenant controller can be used by the editor.
- Fixed handling some defaults from the database. This is an attempt
to fix #88 (but I don't think it does, since I could not reproduce
it).
[Added]
- Added a sanity check for x-list-columns to make sure the columns
exist. This prevents an issue where the editor would refuse to
load.
1.047 2020-03-31 22:00:54-05:00 America/Chicago
[Added]
- Added example Dockerfiles in eg/docker and started publishing
Docker images (with bundled database backends) to
https://hub.docker.com/r/preaction/yancy
[Fixed]
- Fixed SQLite backend minimum version to 1.56. 1.54 has an issue
with finding unique constraints that prevents `read_schema` from
finding the right surrogate keys. Thanks @chy-causer for the
report! [Github #87]
1.046 2020-03-29 12:55:40-05:00 America/Chicago
[Added]
- Added "now" as a default value for date/time fields. This will be
translated to the database's function for getting the current
date/time.
[Fixed]
- Fixed date/time input validation error in Chrome: "datetime-local"
fields in HTML do not support seconds, so we must not give them
seconds in the value.
- Fixed a bunch of tests to be less fragile
- Fixed date/time backend validation of empty strings. Empty strings
are sent by forms a lot, but the user most likely intended the
value to be some kind of null. Thanks @chy-causer for reporting
this bug!
1.045 2019-12-16 22:36:47-06:00 America/Chicago
[Fixed]
- Fixed a bug in the DBIx::Class foreign key detection: Yancy was
incorrectly using the table name, not the source name. Thanks
@mario-minati for the report! [Github #84]
1.044 2019-12-05 21:49:40-06:00 America/Chicago
[Added]
- Added documentation for user authentication / authorization, and
a corresponding demo application.
- Added documentation for how Yancy hashes passwords (to integrate
with other systems).
1.043 2019-12-05 16:26:02-06:00 America/Chicago
[Added]
- Added limited support for resolving foreign keys. A foreign key
column must reference the `x-id-field` of the primary table, and
composite foreign keys are not supported (same as composite
primary keys).
1.042 2019-11-24 02:10:37-06:00 America/Chicago
The Yancy IRC channel has been moved to Freenode #mojo-yancy
[Added]
- Added Yancy::Plugin::Auth::Role::RequireUser for simple
authorization
[Fixed]
- Fixed an issue with formatting error messages from new
JSON::Validator versions (3.15). Thanks @wbazant! [Github #78]
- Added documentation on how to create users for password
authentication.
1.041 2019-10-12 18:52:06-05:00 America/Chicago
[Added]
- Added array support to the Yancy editor UI. This is presently only
being used by Yancy::Backend::Static, but other backends can now
add support for complex data structures using JSON fields or by
serializing to some data format. Thanks @wbazant! [Github #72]
[Fixed]
- Fixed boolean fields not allowing undefined to exist. Thanks
@wbazant! [Github #73]
- Fixed required Markdown fields not showing an error when not
filled in. Thanks @wbazant! [Github #75]
- Fixed minimum JSON::Validator version. The old minimum did not yet
support some of the features we were using. Thanks "fnord" on
irc.perl.org!
1.040 2019-09-13 23:15:28-05:00 America/Chicago
[Fixed]
- Fixed an exception being thrown when trying to show an error
message on the `list` action in Yancy::Controller::Yancy. When
`list` doesn't yet know how to search on a field of a certain
type, it gives an error. An error in that error caused the wrong
error to show. Thanks @wbazant! [Github #70]
- Fixed `match()` utility throwing an uninitialized warning when
testing a `!=` against an `undef` value. Thanks @wbazant!
[Github #71]
1.039 2019-08-10 18:30:53-05:00 America/Chicago
[Fixed]
- Fixed Auth::Password plugin throwing an error when it could not
determine what fields to display during registration (even if
registration was disabled). Thanks @ViktorNacht for reporting this
issue! (Github #69)
- Fixed a broken link as reported by CPANTS. Thanks @manwar for
fixing this! (Github #68)
1.038 2019-07-29 23:25:18-05:00 America/Chicago
[Fixed]
- Fixed `-has` and `-not_has` throwing exceptions when the queried
value is not defined. Undefined values are now treated the same as
an empty array/hash and always returns false for `-has` and true
for `-not_has`.
- Fixed Yancy controller list action total page count off by one
when the total number of items is equally divisible by the page
size.
1.037 2019-07-26 19:47:50-05:00 America/Chicago
[Added]
- Added `-has` to Yancy::Backend. This allows for searching inside
deep data structures. This is only implemented by
Yancy::Backend::Static, but the Postgres and MySQL backends may
implement it to look inside JSON/XML in a future version.
1.036 2019-07-06 18:47:40-05:00 America/Chicago
[Added]
- Added `order_by` utility function for ordering arrays
- Added `order_by` default for Yancy controller `list` action
- Added support for null and not null to the `match` utility
[Fixed]
- Added better documentation for the new File plugin
- Fixed Yancy controller to respond to any request format.
1.035 2019-06-30 22:04:46-05:00 America/Chicago
[Added]
- Added File plugin to manage file uploads. This plugin uses the
local filesystem, but other plugins could be built to use file
storage services.
[Fixed]
- Fixed default values not appearing in the editor. This changes how
examples work, so there might be some problems here that will need
to be worked out...
- Fixed required password field not passing validation. When a user
already has a password, they shouldn't have to keep giving us
a new one. So, passwords are not subject to validation.
1.034 2019-06-23 20:53:24-04:00 America/New_York
[Added]
- Added filter subref to Yancy controller. Now you can pass in
a subroutine reference to resolve the `list` action's filter. This
makes it easy to add filters based on session information, user
information, or otherwise.
- Added multi-backend support to the editor and controllers. Now you
can create a second Yancy::Backend object and use that in a second
editor instance or any controller.
1.033 2019-06-19 22:34:28-04:00 America/New_York
[Added]
- Allow `x-list-columns` templates to contain HTML. Now you can
create links in the editor. Any HTML in the database will be
escaped, to prevent malicious users from messing with things.
- Added a default list template: 'yancy/table'. This template shows
a table with the schema's `x-list-columns` by default. Adding
`show_filter => 1` adds a form to filter the table.
1.032 2019-06-13 22:36:44-05:00 America/Chicago
[Fixed]
- Fixed two issues preventing Auth::Github from working in
standalone mode:
- One was causing "Can't call method 'clone' using package '<url>'".
- The other was causing users to not be found.
1.031 2019-06-06 21:24:24-05:00 America/Chicago
[Fixed]
- Fixed screenshot display in documentation.
1.030 2019-06-06 21:05:22-05:00 America/Chicago
[Added]
- Added 'yancy.editor.include' and 'yancy.editor.menu' helpers.
These helpers allow you to add new VueJS components to the editor
application to help manage the content in your web application.
1.029 2019-06-06 00:22:57-05:00 America/Chicago
[Fixed]
- Fixed some bugs in the editor caused by switching to
Yancy::Controller::Yancy.
[Added]
- Added Selenium tests for the Yancy editor
1.028 2019-06-04 12:11:51-05:00 America/Chicago
[Fixed]
- Fixed incompatibility with Mojo::JSON. Thanks @rabbiveesh! [Github #64]
- Fixed some POD errors caught by CPANTS. Thanks @manwar! [Github #63]
1.027 2019-06-02 01:02:26-05:00 America/Chicago
[DEPRECATED]
- The Yancy::Controller::Yancy::API duplicated all the functionality
of Yancy::Controller::Yancy for no good reason, so it is now
deprecated.
- The configuration for the API controller is now changed from
`api_controller` to `editor.default_controller`.
[Added]
- The editor is now a plugin, Yancy::Plugin::Editor. This should
help future development by making it easier to extend the editor,
add new functionality, and even make it possible to have multiple
instances of the editor.
- Added Yancy::Help::Upgrading for help navigating the deprecations
for v2.000.
1.026 2019-05-17 01:23:13-05:00 America/Chicago
[DEPRECATED]
These are the only deprecations until after version 2.000.
- The "collections" configuration is now "schema". This is more
descriptive and will allow for expanding Form and Controller
plugins to accept ad-hoc schemas. The existing "collections"
configuration will work, but will warn until version 2.000 (at
which point it will be removed).
- The Auth::Basic plugin is deprecated. Switch to Auth::Password and
your users' passwords will be automatically upgraded the next time
they log in. This feature will be removed in version 2.000 (at
which point the user must reset their password somehow).
[Fixed]
- Github auth no longer registers users by default. If you want to
allow new users to be created from Github, you must set
'allow_register' to true.
- The editor now uses floating notifications for saved items to
avoid the page jumping around.
- The default layouts are now responsive for mobile devices.
[Added]
- The bundled Bootstrap version has been upgraded to 4.3. This
version includes the "toast" component now being used by the
editor.
1.025 2019-05-05 23:08:11-05:00 America/Chicago
[Added]
- Added new Password auth plugin. This plugin allows user to
register accounts and login with a password (similar to the Basic
auth plugin).
- Added simple Token auth plugin. This allows for easy API
authentication.
- Added OAuth2 auth plugin.
- Added Github auth plugin. This uses the OAuth2 plugin and fetches
useful information from the Github API.
- Added Auth multiplex plugin to enable multiple authentication
mechanisms in a single site. This allows individual users to be
authenticated from one or more auth mechanisms attached to the
same account.
- Added `require_user` helper for basic authorization schemes.
- The Bootstrap4 Form plugin is now the default form plugin if no
other form plugin is loaded. This allows the new Auth plugins to
have a way to generate fields for registering users.
- Added `default` value handling in `create` helper.
1.024 2019-04-26 15:55:07+01:00 Europe/London
[Added]
- When reading a schema from the database, Yancy will now prefer
"natural" keys to artificial ones. For example, if you have
a "users" table with an auto-increment "id" column and a unique
"username" column, Yancy will pick the "username" column as the ID
field. This creates a nicer URL structure in Yancy controllers.
- Default values are now properly set from the database when reading
the schema.
- For DBIx::Class backends, Yancy will now call the `yancy` method
on the ResultSource object to get default configuration for the
collection. Using this method you can quickly make Yancy ignore
your table by returning `{ 'x-ignore' => 1 }`, you can improve
Yancy's detection of field settings, or you can provide a default
set of list columns.
- Virtual collections can now be created with `x-view`. A virtual
collection can provide a read-only subset of the underlying
collection's properties. In the future, virtual collections can
become editable and will have column filters.
- Added a `yancy backend copy` command. Use this command to copy
data from your app's backend to another backend. This can
initialize a test database, migrate from one backend to another,
or promote data from a staging server to production.
[Fixed]
- Yancy will now normalize the JSON schema passed-in so that
consumers get a full schema. All the default values Yancy uses
will be placed in the schema data structure returned by the
`schema` helper.
- When reading a MySQL database, Yancy now correctly finds a unique
column. Previously, it could pick a non-unique column that had an
index.
[Other]
- Added tests for running search queries on various non-string types
(integer, boolean)
- Added more tests for `order_by` in the backend list method
- Migrated the Yancy doc site example to use the new
Yancy::Backend::Static module. This backend module is in its own
distribution because it depends on some extra prerequisites.
1.023 2019-02-14 20:23:07-06:00 America/Chicago
[Added]
- Added auth failure logging to the Basic auth module to help
diagnose user login issues.
- Added filter parameters. Now a filter can be configured with
parameters directly by giving an array as the filter (instead of
a name). The first item in the array is the filter name, the rest
of the items are passed in to the filter function.
- Added `yancy.from_helper` filter. This filter calls a helper from your
app to filter data.
- Added `yancy.overlay_from_helper` filter. This filter calls multiple
helpers to update different fields in an item.
- Added `yancy.wrap` and `yancy.unwrap` filters. These allow you to
flatten (unwrap) a complex data structure into a simple set of
key/value pairs (suitable for a relational table) and then undo it
(wrap) later.
[Fixed]
- Fixed the backend documentation to be clearer and provide some
examples of `list()` method usage.
[Other]
- Increased dependency on Mojolicious::Plugin::OpenAPI to 2.12 to
fix failing Yancy tests.
This includes an upgrade to JSON::Validator which fixes a problem
that was causing booleans to not be coerced. Now all booleans are
being coerced correctly, so you should expect to see `true` and
`false` values (from Mojo::JSON) after validation.
- Removed duplicate code from the Mojo::* backends (Pg, Mysql,
Sqlite) into a new Yancy::Backend::Role::Relational and
Yancy::Backend::Role::MojoAsync
1.022 2019-01-13 13:22:33-06:00 America/Chicago
[Fixed]
- Fixed home directory for Yancy standalone app to be the current
working directory. This directory is where the config file,
"public" (static files) directory, and "templates" directory are
found. Thanks @pplu for reporting this bug! [Github #47]
- Added documentation note about how to configure Auth::Basic login
session expiration using Mojolicious::Sessions
`default_expiration`