@cronapp/templates 3.0.0-SP.3 → 3.0.0-SP.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/$global/data-layer/ENTITIES.ftl +6 -1
  2. package/package.json +1 -1
  3. package/project/M/cronapp-lyceum-project-mobile-cordova/__linksInherit +0 -1
  4. package/project/M/cronapp-rad-project-mobile-cordova/__linksInherit +2 -1
  5. package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/__copydata.ftl +4 -4
  6. package/project/M/cronapp-rad-project-mobile-cordova/template.properties +4 -2
  7. package/project/M/cronapp-rad-project-mobile-cordova/template_en_US.properties +2 -1
  8. package/project/M/cronapp-rad-project-mobile-cordova/template_pt_BR.properties +2 -1
  9. package/project/S/business-service/template.properties +0 -1
  10. package/project/S/data-service/diagram/app.umlcd +1 -1
  11. package/project/S/data-service/src/main/java/META-INF/datasources/__copydata.ftl +0 -0
  12. package/project/S/data-service/src/main/java/app/entity/Sample.java +1 -0
  13. package/project/S/data-service/template.properties +0 -1
  14. package/project/W/cronapp-rad-project/__copydata.ftl +0 -1
  15. package/project/W/cronapp-rad-project/config/app.config.ftl +5 -0
  16. package/project/W/cronapp-rad-project/diagram/app.umlcd +150 -0
  17. package/project/W/cronapp-rad-project/diagram/app.umlcd.ftl +150 -0
  18. package/project/W/cronapp-rad-project/pom.xml.ftl +3 -1
  19. package/project/W/cronapp-rad-project/src/main/java/META-INF/persistence.xml.ftl +1 -0
  20. package/project/W/cronapp-rad-project/src/main/java/app/dao/InvalidatedTokenDAO.java +24 -0
  21. package/project/W/cronapp-rad-project/src/main/java/app/dao/__copydata.ftl +2 -0
  22. package/project/W/cronapp-rad-project/src/main/java/app/entity/InvalidatedToken.java +113 -0
  23. package/project/W/cronapp-rad-project/src/main/java/app/entity/__copydata.ftl +2 -0
  24. package/project/W/cronapp-rad-project/src/main/java/i18n/Messages_en_US.properties +2 -1
  25. package/project/W/cronapp-rad-project/src/main/java/i18n/Messages_pt_BR.properties +1 -0
  26. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/index.html.ftl +1 -0
  27. package/project/W/cronapp-rad-project/src/main/webapp-sem-autenticacao/webapp/index.html.ftl +1 -0
  28. package/templates/low-code/data-layer/ENTITIES.ftl +22 -0
  29. package/project/W/cronapp-rad-project/Dockerfile +0 -30
@@ -10,7 +10,9 @@ import ${import};
10
10
  <#if (clazz.multitenantClass)>
11
11
  import org.eclipse.persistence.annotations.*;
12
12
  </#if>
13
-
13
+ <#if clazz.hasNotEmpty()>
14
+ import javax.validation.constraints.NotEmpty;
15
+ </#if>
14
16
  /**
15
17
  * Classe que representa a tabela <#if tableName??>${tableName}<#else>${clazz.name?upper_case}</#if>
16
18
  * @generated
@@ -96,6 +98,9 @@ public class ${clazz.name} implements Serializable {
96
98
  @Column(name = "${field.dbFieldName}"<#if !field.primaryKey>, nullable = ${field.nullable?c}, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c})
97
99
  </#if>
98
100
  </#if>
101
+ <#if !field.isNotEmpty()>
102
+ @NotEmpty(message="Não permite vazio.")
103
+ </#if>
99
104
  <#if (field.ignore)>
100
105
  @JsonIgnore
101
106
  </#if>
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@cronapp/templates",
3
- "version": "3.0.0-SP.3",
3
+ "version": "3.0.0-SP.30",
4
4
  "cronapp-ide-minimum-version": "2.5.0"
5
5
  }
@@ -1,7 +1,6 @@
1
1
  ../../project/W/cronapp-rad-project/config
2
2
  ../../project/W/cronapp-rad-project/docs
3
3
  ../../project/W/cronapp-rad-project/diagram
4
- ../../project/W/cronapp-rad-project/Dockerfile
5
4
  ../../project/W/cronapp-rad-project/Jenkinsfile
6
5
  ../../project/W/cronapp-rad-project/pom.xml.ftl
7
6
  ../../project/W/cronapp-rad-project/.gitignore.ftl
@@ -1,6 +1,7 @@
1
1
  ../../project/W/cronapp-rad-project/config
2
+ <#if (includeauth?? && includeauth?lower_case == "false") || (!(includeauth!"false")?boolean)>
2
3
  ../../project/W/cronapp-rad-project/docs
3
4
  ../../project/W/cronapp-rad-project/diagram
4
- ../../project/W/cronapp-rad-project/Dockerfile
5
+ </#if>
5
6
  ../../project/W/cronapp-rad-project/Jenkinsfile
6
7
  ../../project/W/cronapp-rad-project/pom.xml.ftl
@@ -1,12 +1,12 @@
1
1
  <#-- Verificar se existem parametros -->
2
- <#if (authentication?? && backend?? && frontend??) >
3
- <#if (authentication?lower_case) != "nenhuma" &&(backend?lower_case) == "true" >
2
+ <#if (authentication?? && backend?? && frontend?? && includeauth??) >
3
+ <#if ((authentication?lower_case) != "nenhuma" &&(backend?lower_case) == "true") || ((includeauth?lower_case) == "true") >
4
4
  path.content=/www-autenticacao
5
5
  </#if>
6
- <#if ((authentication?lower_case) == "nenhuma" || (backend?lower_case) == "false")>
6
+ <#if ((authentication?lower_case) == "nenhuma" || (backend?lower_case) == "false") && ((includeauth?lower_case) == "false")>
7
7
  path.content=/www-sem-autenticacao
8
8
  </#if>
9
9
  <#-- Caso contrario copiar tudo -->
10
10
  <#else>
11
11
  path.content=/www-autenticacao
12
- </#if>
12
+ </#if>
@@ -101,7 +101,8 @@ authenticationTypes=Nenhuma|Normal|Token|activeDirectory|ldap|SSO|Saml
101
101
  parameter.page.1.string.0.appid=${generateAppId}
102
102
  parameter.page.1.boolean.1.frontend=true
103
103
  parameter.page.1.boolean.2.backend=true
104
- parameter.page.1.list.3.authentication=Token|SSO|Saml|Nenhuma
104
+ parameter.page.1.boolean.3.includeauth=false
105
+ parameter.page.1.list.4.authentication=Token|SSO|Saml|Nenhuma
105
106
  parameter.page.1.list.6.social=Não|Sim
106
107
  parameter.page.1.list.7.mutual=Não|Sim
107
108
  parameter.page.2.theme.6.theme=Material|Aquamarine|Fuse|DsGov|Material-Round|Krypton|Cerulean|Cosmo|Cyborg|Darkly|Flatly|Journal|Lumen|Paper|Readable|Sandstone|Simplex|Slate|Spacelab|Superhero|United|Yeti
@@ -129,4 +130,5 @@ themeDescription.Yeti=O tema Yeti utiliza o padrão de HTML e CSS do Bootstrap
129
130
  themeDescription.Material-Round=Material Round theme uses standard HTML and CSS Bootstrap 🆕
130
131
  themeDescription.Krypton=The Krypton theme uses standard HTML and CSS Bootstrap 🆕
131
132
 
132
- parameter.dependency.dcyauthentication.authentication.backend.false=Token
133
+ parameter.dependency.dcyauthentication.authentication.backend.false=Token
134
+ parameter.dependency.dcyauth.includeauth.backend.true=false
@@ -2,7 +2,8 @@ description=Template to create Mobile Low-Code App using CronApp IDE
2
2
  parameter.page.1.string.0.appid=Application Id
3
3
  parameter.page.1.boolean.1.frontend=Include Web Front-End
4
4
  parameter.page.1.boolean.2.backend=Include Back-End
5
- parameter.page.1.list.3.authentication=Authentication Type
5
+ parameter.page.1.boolean.3.includeauth=Include Authentication
6
+ parameter.page.1.list.4.authentication=Authentication Type
6
7
  parameter.page.1.list.6.social=Login over social networks
7
8
  parameter.page.1.list.7.mutual=Mutual Authentication
8
9
 
@@ -1,7 +1,8 @@
1
1
  parameter.page.1.string.0.appid=Id da Aplicação
2
2
  parameter.page.1.boolean.1.frontend=Incluir Front-End Web
3
3
  parameter.page.1.boolean.2.backend=Incluir Back-End
4
- parameter.page.1.list.3.authentication=Tipo de Autenticação
4
+ parameter.page.1.boolean.3.includeauth=Incluir Autenticação
5
+ parameter.page.1.list.4.authentication=Tipo de Autenticação
5
6
  parameter.page.1.list.6.social=Login por redes sociais
6
7
  parameter.page.1.list.7.mutual=Autenticação Mútua
7
8
 
@@ -8,7 +8,6 @@ mimetype.src.main.java=folder/src
8
8
  mimetype.src.main.resources=folder/src
9
9
  mimetype.src.test.java=folder/src
10
10
  mimetype.config=folder/servercontext
11
- planTypes=techne,cronapp
12
11
  template.id=business-service
13
12
 
14
13
  parameter.hidden.frontend=false
@@ -211,7 +211,7 @@
211
211
  "height": 120,
212
212
  "width": 195
213
213
  },
214
- "swagger": false,
214
+ "swagger": true,
215
215
  "tableName": "sample",
216
216
  "tableScheme": null,
217
217
  "type": "uml.Class",
@@ -19,6 +19,7 @@ import cronapi.swagger.CronappSwagger;
19
19
  @javax.persistence.Table(name = "\"sample\"")
20
20
  @XmlRootElement
21
21
  @CronappSecurity
22
+ @CronappSwagger
22
23
  @JsonFilter("app.entity.Sample")
23
24
  public class Sample implements Serializable {
24
25
  /**
@@ -8,7 +8,6 @@ mimetype.src.main.java=folder/src
8
8
  mimetype.src.main.resources=folder/src
9
9
  mimetype.src.test.java=folder/src
10
10
  mimetype.config=folder/servercontext
11
- planTypes=techne,cronapp
12
11
  template.id=data-service
13
12
 
14
13
  parameter.hidden.frontend=false
@@ -23,5 +23,4 @@ file=README.md
23
23
  file=spring-boot.png
24
24
  </#if>
25
25
  file=.dockerignore
26
- file=Dockerfile
27
26
  file=Jenkinsfile
@@ -14,8 +14,13 @@
14
14
  <#if (service!"false")?boolean>
15
15
  "openApi": {
16
16
  "exposeEndpoints": true,
17
+ <#if (dataService!"false")?boolean>
18
+ "exposeDataSources": true,
19
+ "exposeEntities": true,
20
+ <#else>
17
21
  "exposeDataSources": false,
18
22
  "exposeEntities": false,
23
+ </#if>
19
24
  "exposeBlocklys": true,
20
25
  "exposeAuth": false
21
26
  },
@@ -1099,6 +1099,156 @@
1099
1099
  "type": "uml.Class",
1100
1100
  "z": 13
1101
1101
  },
1102
+ {
1103
+ "angle": 0,
1104
+ "attributes": [
1105
+ "id:java.lang.String",
1106
+ "expirationDate:java.sql.Timestamp"
1107
+ ],
1108
+ "attrs": {
1109
+ ".uml-class-attrs-rect": {
1110
+ "fill": "#F0F0F0",
1111
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
1112
+ "height": 60,
1113
+ "stroke": "#C2C2C2",
1114
+ "transform": "translate(0,40)"
1115
+ },
1116
+ ".uml-class-attrs-text": {
1117
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
1118
+ "font-size": 11,
1119
+ "text": "* id\nexpirationDate\n"
1120
+ },
1121
+ ".uml-class-attrs-value": {
1122
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
1123
+ "font-size": 11,
1124
+ "ref-x": 121,
1125
+ "text": "Texto\nCarimbo de Data e Hora\n"
1126
+ },
1127
+ ".uml-class-methods-rect": {
1128
+ "fill": "#F0F0F0",
1129
+ "height": 20,
1130
+ "stroke": "#C2C2C2",
1131
+ "stroke-width": 1,
1132
+ "transform": "translate(0,100)"
1133
+ },
1134
+ ".uml-class-methods-text": {
1135
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
1136
+ "font-size": 11,
1137
+ "text": ""
1138
+ },
1139
+ ".uml-class-name-rect": {
1140
+ "fill": "#F0F0F0",
1141
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
1142
+ "height": 40,
1143
+ "stroke": "#C2C2C2",
1144
+ "transform": "translate(0,0)"
1145
+ },
1146
+ ".uml-class-name-text": {
1147
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
1148
+ "text": "InvalidatedToken"
1149
+ }
1150
+ },
1151
+ "audit": false,
1152
+ "fields": [
1153
+ {
1154
+ "name": "id",
1155
+ "type": "java.lang.String",
1156
+ "dbName": "id",
1157
+ "dbLength": "",
1158
+ "dbPrecision": "",
1159
+ "dbScale": "",
1160
+ "dbDefaultValue": "UUID.randomUUID().toString().toUpperCase()",
1161
+ "label": "{{\u0027Id\u0027 | translate}}",
1162
+ "mask": "",
1163
+ "isPrimaryKey": true,
1164
+ "isUniqueKey": false,
1165
+ "isNullable": false,
1166
+ "pkType": "UUID",
1167
+ "multitenantContext": "",
1168
+ "jsonIgnore": false,
1169
+ "isTransient": false,
1170
+ "isInsertable": true,
1171
+ "isUpdatable": true,
1172
+ "isEncryption": false,
1173
+ "passwordPolicy": "none",
1174
+ "referencedColumnName": "",
1175
+ "isSearchable": false,
1176
+ "sequence": "",
1177
+ "isCascade": false,
1178
+ "isVersion": false,
1179
+ "storageId": "",
1180
+ "storageKey": "",
1181
+ "storageType": "",
1182
+ "storageSecret": "",
1183
+ "foreignKeyName": "",
1184
+ "joins": "",
1185
+ "isIndex": false,
1186
+ "useOuterJoin": false,
1187
+ "regionAWS": ""
1188
+ },
1189
+ {
1190
+ "name": "expirationDate",
1191
+ "type": "java.sql.Timestamp",
1192
+ "dbName": "expiration_date",
1193
+ "dbLength": "",
1194
+ "dbPrecision": "",
1195
+ "dbScale": "",
1196
+ "dbDefaultValue": "",
1197
+ "label": "{{\u0027ExpirationDate\u0027 | translate}}",
1198
+ "mask": "",
1199
+ "isPrimaryKey": false,
1200
+ "isUniqueKey": false,
1201
+ "isNullable": true,
1202
+ "pkType": "",
1203
+ "multitenantContext": "",
1204
+ "jsonIgnore": false,
1205
+ "isTransient": false,
1206
+ "isInsertable": true,
1207
+ "isUpdatable": true,
1208
+ "isEncryption": false,
1209
+ "passwordPolicy": "none",
1210
+ "referencedColumnName": "",
1211
+ "isSearchable": false,
1212
+ "sequence": "",
1213
+ "isCascade": false,
1214
+ "isVersion": false,
1215
+ "storageId": "",
1216
+ "storageKey": "",
1217
+ "storageType": "",
1218
+ "storageSecret": "",
1219
+ "foreignKeyName": "",
1220
+ "joins": "",
1221
+ "isIndex": false,
1222
+ "useOuterJoin": false,
1223
+ "regionAWS": ""
1224
+ }
1225
+ ],
1226
+ "generateView": "Auto",
1227
+ "id": "79a9aae4-09b4-4f9a-8712-b78ad5a08e3e",
1228
+ "isRest": "true",
1229
+ "methods": [],
1230
+ "modelType": "Table",
1231
+ "name": "InvalidatedToken",
1232
+ "position": {
1233
+ "x": 1150,
1234
+ "y": 566
1235
+ },
1236
+ "queries": [],
1237
+ "realName": "",
1238
+ "restSecurity": null,
1239
+ "role": "Class",
1240
+ "runtimeClass": "cronos.widgets.joint.uml.Class",
1241
+ "size": {
1242
+ "height": 120,
1243
+ "width": 261
1244
+ },
1245
+ "swagger": false,
1246
+ "tableName": "INVALIDATED_TOKEN",
1247
+ "tableScheme": null,
1248
+ "type": "uml.Class",
1249
+ "usePhysicalNames": false,
1250
+ "z": 24
1251
+ },
1102
1252
  {
1103
1253
  "angle": 0,
1104
1254
  "attributes": [
@@ -723,6 +723,156 @@
723
723
  "type": "uml.Class",
724
724
  "z": 13
725
725
  },
726
+ {
727
+ "angle": 0,
728
+ "attributes": [
729
+ "id:java.lang.String",
730
+ "expirationDate:java.sql.Timestamp"
731
+ ],
732
+ "attrs": {
733
+ ".uml-class-attrs-rect": {
734
+ "fill": "#F0F0F0",
735
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
736
+ "height": 60,
737
+ "stroke": "#C2C2C2",
738
+ "transform": "translate(0,40)"
739
+ },
740
+ ".uml-class-attrs-text": {
741
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
742
+ "font-size": 11,
743
+ "text": "* id\nexpirationDate\n"
744
+ },
745
+ ".uml-class-attrs-value": {
746
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
747
+ "font-size": 11,
748
+ "ref-x": 121,
749
+ "text": "Texto\nCarimbo de Data e Hora\n"
750
+ },
751
+ ".uml-class-methods-rect": {
752
+ "fill": "#F0F0F0",
753
+ "height": 20,
754
+ "stroke": "#C2C2C2",
755
+ "stroke-width": 1,
756
+ "transform": "translate(0,100)"
757
+ },
758
+ ".uml-class-methods-text": {
759
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
760
+ "font-size": 11,
761
+ "text": ""
762
+ },
763
+ ".uml-class-name-rect": {
764
+ "fill": "#F0F0F0",
765
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
766
+ "height": 40,
767
+ "stroke": "#C2C2C2",
768
+ "transform": "translate(0,0)"
769
+ },
770
+ ".uml-class-name-text": {
771
+ "font-family": "\u0027Fira Sans\u0027, sans-serif",
772
+ "text": "InvalidatedToken"
773
+ }
774
+ },
775
+ "audit": false,
776
+ "fields": [
777
+ {
778
+ "name": "id",
779
+ "type": "java.lang.String",
780
+ "dbName": "id",
781
+ "dbLength": "",
782
+ "dbPrecision": "",
783
+ "dbScale": "",
784
+ "dbDefaultValue": "UUID.randomUUID().toString().toUpperCase()",
785
+ "label": "{{\u0027Id\u0027 | translate}}",
786
+ "mask": "",
787
+ "isPrimaryKey": true,
788
+ "isUniqueKey": false,
789
+ "isNullable": false,
790
+ "pkType": "UUID",
791
+ "multitenantContext": "",
792
+ "jsonIgnore": false,
793
+ "isTransient": false,
794
+ "isInsertable": true,
795
+ "isUpdatable": true,
796
+ "isEncryption": false,
797
+ "passwordPolicy": "none",
798
+ "referencedColumnName": "",
799
+ "isSearchable": false,
800
+ "sequence": "",
801
+ "isCascade": false,
802
+ "isVersion": false,
803
+ "storageId": "",
804
+ "storageKey": "",
805
+ "storageType": "",
806
+ "storageSecret": "",
807
+ "foreignKeyName": "",
808
+ "joins": "",
809
+ "isIndex": false,
810
+ "useOuterJoin": false,
811
+ "regionAWS": ""
812
+ },
813
+ {
814
+ "name": "expirationDate",
815
+ "type": "java.sql.Timestamp",
816
+ "dbName": "expiration_date",
817
+ "dbLength": "",
818
+ "dbPrecision": "",
819
+ "dbScale": "",
820
+ "dbDefaultValue": "",
821
+ "label": "{{\u0027ExpirationDate\u0027 | translate}}",
822
+ "mask": "",
823
+ "isPrimaryKey": false,
824
+ "isUniqueKey": false,
825
+ "isNullable": true,
826
+ "pkType": "",
827
+ "multitenantContext": "",
828
+ "jsonIgnore": false,
829
+ "isTransient": false,
830
+ "isInsertable": true,
831
+ "isUpdatable": true,
832
+ "isEncryption": false,
833
+ "passwordPolicy": "none",
834
+ "referencedColumnName": "",
835
+ "isSearchable": false,
836
+ "sequence": "",
837
+ "isCascade": false,
838
+ "isVersion": false,
839
+ "storageId": "",
840
+ "storageKey": "",
841
+ "storageType": "",
842
+ "storageSecret": "",
843
+ "foreignKeyName": "",
844
+ "joins": "",
845
+ "isIndex": false,
846
+ "useOuterJoin": false,
847
+ "regionAWS": ""
848
+ }
849
+ ],
850
+ "generateView": "Auto",
851
+ "id": "79a9aae4-09b4-4f9a-8712-b78ad5a08e3e",
852
+ "isRest": "true",
853
+ "methods": [],
854
+ "modelType": "Table",
855
+ "name": "InvalidatedToken",
856
+ "position": {
857
+ "x": 1150,
858
+ "y": 566
859
+ },
860
+ "queries": [],
861
+ "realName": "",
862
+ "restSecurity": null,
863
+ "role": "Class",
864
+ "runtimeClass": "cronos.widgets.joint.uml.Class",
865
+ "size": {
866
+ "height": 120,
867
+ "width": 261
868
+ },
869
+ "swagger": false,
870
+ "tableName": "INVALIDATED_TOKEN",
871
+ "tableScheme": null,
872
+ "type": "uml.Class",
873
+ "usePhysicalNames": false,
874
+ "z": 24
875
+ },
726
876
  {
727
877
  "angle": 0,
728
878
  "attributes": [
@@ -3,7 +3,7 @@
3
3
  <parent>
4
4
  <groupId>io.cronapp</groupId>
5
5
  <artifactId>cronapp-framework-spring</artifactId>
6
- <version>2.9.1-SNAPSHOT</version>
6
+ <version>3.0.0</version>
7
7
  <relativePath />
8
8
  </parent>
9
9
  <modelVersion>4.0.0</modelVersion>
@@ -13,6 +13,7 @@
13
13
  <name>${appname}</name>
14
14
  <version>1.0-SNAPSHOT</version>
15
15
  <url>http://maven.apache.org</url>
16
+ <#if (includeauth?? && includeauth?lower_case == "false") || (!(includeauth!"false")?boolean)>
16
17
  <build>
17
18
  <resources>
18
19
  <#if ((backend??) && (backend?lower_case) == "true") >
@@ -152,6 +153,7 @@
152
153
  </dependency>
153
154
  </#if>
154
155
  </dependencies>
156
+ </#if>
155
157
  <properties>
156
158
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
157
159
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -7,6 +7,7 @@
7
7
  <class>app.entity.Device</class>
8
8
  <#if (authentication??) >
9
9
  <#if ((authentication?lower_case) != "nenhuma") && !(service!"false")?boolean>
10
+ <class>app.entity.InvalidatedToken</class>
10
11
  <class>app.entity.RoleSecurable</class>
11
12
  <class>app.entity.Securable</class>
12
13
  <class>app.entity.UserSecurable</class>
@@ -0,0 +1,24 @@
1
+ package app.dao;
2
+
3
+ import app.entity.*;
4
+ import java.util.*;
5
+ import org.springframework.stereotype.*;
6
+ import org.springframework.data.jpa.repository.*;
7
+ import org.springframework.data.domain.*;
8
+ import org.springframework.data.repository.query.*;
9
+ import org.springframework.transaction.annotation.*;
10
+
11
+
12
+ /**
13
+ * Realiza operação de Create, Read, Update e Delete no banco de dados.
14
+ * Os métodos de create, edit, delete e outros estão abstraídos no JpaRepository
15
+ *
16
+ * @see org.springframework.data.jpa.repository.JpaRepository
17
+ *
18
+ * @generated
19
+ */
20
+ @Repository("app-InvalidatedTokenDAO")
21
+ @Transactional(transactionManager="app-TransactionManager")
22
+ public interface InvalidatedTokenDAO extends JpaRepository<InvalidatedToken, java.lang.String> {
23
+
24
+ }
@@ -8,6 +8,7 @@ file=ApplicationDAO.java
8
8
  file=ApplicationUserDAO.java
9
9
  file=AuditLogDAO.java
10
10
  file=DeviceDAO.java
11
+ file=InvalidatedTokenDAO.java
11
12
  file=LoginDAO.java
12
13
  file=RoleDAO.java
13
14
  file=RoleSecurableDAO.java
@@ -23,6 +24,7 @@ file=ApplicationDAO.java
23
24
  file=ApplicationUserDAO.java
24
25
  file=AuditLogDAO.java
25
26
  file=DeviceDAO.java
27
+ file=InvalidatedTokenDAO.java
26
28
  file=LoginDAO.java
27
29
  file=RoleDAO.java
28
30
  file=RoleSecurableDAO.java
@@ -0,0 +1,113 @@
1
+
2
+ package app.entity;
3
+
4
+ import java.io.*;
5
+ import javax.persistence.*;
6
+ import java.util.*;
7
+ import javax.xml.bind.annotation.*;
8
+ import com.fasterxml.jackson.annotation.JsonIgnore;
9
+ import com.fasterxml.jackson.annotation.JsonFilter;
10
+ import cronapi.rest.security.CronappSecurity;
11
+ import cronapi.swagger.CronappSwagger;
12
+
13
+
14
+ /**
15
+ * Classe que representa a tabela INVALIDATED_TOKEN
16
+ * @generated
17
+ */
18
+ @javax.persistence.Entity
19
+ @javax.persistence.Table(name = "\"INVALIDATED_TOKEN\"")
20
+ @XmlRootElement
21
+ @CronappSecurity
22
+ @JsonFilter("app.entity.InvalidatedToken")
23
+ public class InvalidatedToken implements Serializable {
24
+ /**
25
+ * UID da classe, necessário na serialização
26
+ * @generated
27
+ */
28
+ private static final long serialVersionUID = 1L;
29
+
30
+ /**
31
+ * @generated
32
+ */
33
+ @Id
34
+ @Column(name = "id", nullable = false, insertable=true, updatable=true)
35
+ private java.lang.String id = UUID.randomUUID().toString().toUpperCase();
36
+
37
+
38
+ /**
39
+ * @generated
40
+ */
41
+ @Temporal(TemporalType.TIMESTAMP)
42
+ @Column(name = "expiration_date", nullable = true, unique = false, insertable=true, updatable=true, columnDefinition = "TIMESTAMP")
43
+
44
+ private java.util.Date expirationDate;
45
+
46
+
47
+ /**
48
+ * Construtor
49
+ * @generated
50
+ */
51
+ public InvalidatedToken(){
52
+ }
53
+
54
+ /**
55
+ * Obtém id
56
+ * return id
57
+ * @generated
58
+ */
59
+ public java.lang.String getId() {
60
+ return this.id;
61
+ }
62
+
63
+ /**
64
+ * Define id
65
+ * @param id id
66
+ * @generated
67
+ */
68
+ public InvalidatedToken setId(java.lang.String id) {
69
+ this.id = id;
70
+ return this;
71
+ }
72
+ /**
73
+ * Obtém expirationDate
74
+ * return expirationDate
75
+ * @generated
76
+ */
77
+ public java.util.Date getExpirationDate() {
78
+ return this.expirationDate;
79
+ }
80
+
81
+ /**
82
+ * Define expirationDate
83
+ * @param expirationDate expirationDate
84
+ * @generated
85
+ */
86
+ public InvalidatedToken setExpirationDate(java.util.Date expirationDate) {
87
+ this.expirationDate = expirationDate;
88
+ return this;
89
+ }
90
+
91
+ /**
92
+ * @generated
93
+ */
94
+ @Override
95
+ public boolean equals(Object obj) {
96
+ if (this == obj) return true;
97
+ if (obj == null || getClass() != obj.getClass()) return false;
98
+ InvalidatedToken object = (InvalidatedToken)obj;
99
+ if (id != null ? !id.equals(object.id) : object.id != null) return false;
100
+ return true;
101
+ }
102
+
103
+ /**
104
+ * @generated
105
+ */
106
+ @Override
107
+ public int hashCode() {
108
+ int result = 1;
109
+ result = 31 * result + ((id == null) ? 0 : id.hashCode());
110
+ return result;
111
+ }
112
+
113
+ }
@@ -8,6 +8,7 @@ file=Application.java
8
8
  file=ApplicationUser.java
9
9
  file=AuditLog.java
10
10
  file=Device.java
11
+ file=InvalidatedToken.java
11
12
  file=Login.java
12
13
  file=Role.java
13
14
  file=RoleSecurable.java
@@ -23,6 +24,7 @@ file=Application.java
23
24
  file=ApplicationUser.java
24
25
  file=AuditLog.java
25
26
  file=Device.java
27
+ file=InvalidatedToken.java
26
28
  file=Login.java
27
29
  file=Role.java
28
30
  file=RoleSecurable.java
@@ -13,6 +13,7 @@ DeleteMethodAllowed=Delete method allowed
13
13
  Email=Email
14
14
  EmailConfirmed=Email confirmed
15
15
  Error=Error
16
+ ExpirationDate=Expiration Date
16
17
  GetMethodAllowed=Get method allowed
17
18
  HeadMethodAllowed=Head method allowed
18
19
  Host=Host
@@ -38,7 +39,7 @@ Picture=Picture
38
39
  Platform=Platform
39
40
  PlatformVersion=Platform version
40
41
  PostMethodAllowed=Post method allowed
41
- ProviderDisplayName= Provider display name
42
+ ProviderDisplayName=Provider display name
42
43
  ProviderKey=Provider Key
43
44
  PutMethodAllowed=Put method allowed
44
45
  ResetPasswordEmailBody=Your reset password link is
@@ -13,6 +13,7 @@ DeleteMethodAllowed=Método Delete aceito
13
13
  Email=Email
14
14
  EmailConfirmed=Email confirmado
15
15
  Error=Erro
16
+ ExpirationDate=Data de expiração
16
17
  GetMethodAllowed=Método Get aceito
17
18
  HeadMethodAllowed=Método Head aceito
18
19
  Host=Host
@@ -63,6 +63,7 @@
63
63
  <script src="plugins/cronapi-js/dist/cronapi.min.js"></script>
64
64
  <!-- Custom -->
65
65
  <script src="js/events.js"></script>
66
+ <script src="js/hostApp.js"></script>
66
67
  <!-- CronApp Framework -->
67
68
  <script src="plugins/cronapp-framework-js/dist/js/app.authentication.js"></script>
68
69
  <script src="plugins/cronapp-framework-js/dist/js/controllers.authentication.js"></script>
@@ -61,6 +61,7 @@
61
61
  <!-- Custom -->
62
62
  <#if ((backend??) && (backend?lower_case) == "true") >
63
63
  <script src="js/events.js"></script>
64
+ <script src="js/hostApp.js"></script>
64
65
  </#if>
65
66
  <!-- CronApp Framework -->
66
67
  <script src="plugins/cronapp-framework-js/dist/js/app.js"></script>
@@ -56,6 +56,9 @@ import org.eclipse.persistence.annotations.JoinFetchType;
56
56
  <#if clazz.hasXML()>
57
57
  import cronapi.database.ByteConverter;
58
58
  </#if>
59
+ <#if clazz.hasNotEmpty()>
60
+ import javax.validation.constraints.NotEmpty;
61
+ </#if>
59
62
  <#assign hasCloudStorage = clazz.hasCloudStorage()>
60
63
  <#if hasCloudStorage>
61
64
  import cronapi.CronapiCloud;
@@ -87,6 +90,9 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
87
90
  <#if (clazz.multitenantClass)>
88
91
  import org.eclipse.persistence.annotations.*;
89
92
  </#if>
93
+
94
+ import cronapp.framework.core.persistence.*;
95
+
90
96
  /**
91
97
  * Classe que representa a tabela <#if tableName??>${tableName}<#else>${clazz.name?upper_case}</#if>
92
98
  * @generated
@@ -164,6 +170,14 @@ import org.eclipse.persistence.annotations.*;
164
170
  </#list>
165
171
  })
166
172
  </#if>
173
+ <#if clazz.role == "AssociationClass">
174
+ <#assign cronappTableRole = "CronappTableRole.ASSOCIATION_CLASS">
175
+ <#elseif clazz.role == "Class">
176
+ <#assign cronappTableRole = "CronappTableRole.CLASS">
177
+ <#else>
178
+ <#assign cronappTableRole = "CronappTableRole.AUTO">
179
+ </#if>
180
+ @CronappTable(role=${cronappTableRole})
167
181
  public class ${clazz.name} implements Serializable {
168
182
  <#if clazz.hasEncryption()>
169
183
  /**
@@ -195,6 +209,9 @@ public class ${clazz.name} implements Serializable {
195
209
  </#if>
196
210
  <#if (field.isUUID())!false>
197
211
  @Convert("uuid")
212
+ </#if>
213
+ <#if field.isNotEmpty()>
214
+ @NotEmpty
198
215
  </#if>
199
216
  <#if field.isVersion()>
200
217
  @Version
@@ -226,6 +243,7 @@ public class ${clazz.name} implements Serializable {
226
243
  <#if field.columnDefinition?? && field.columnDefinition == "TEXT" && persistenceProvider?upper_case == "ORACLE">
227
244
  @Lob
228
245
  </#if>
246
+ @CronappColumn(attributeType="${field.attributeType}"<#if field.label?has_content>, label="${field.label}"</#if><#if field.mask?has_content>, mask="${field.mask}"</#if><#if field.searchable>, searchable = true</#if><#if field.defaultValue?has_content>, defaultValue = "${field.defaultValue?j_string}"</#if>)
229
247
  @Column(name = "${field.dbFieldName?replace("\"", "\\\"")}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition?? && (field.columnDefinition != "TEXT" || persistenceProvider?upper_case != "ORACLE")>, columnDefinition = "${field.columnDefinition}"</#if>)
230
248
  </#if>
231
249
  ${field.modifier} <#if field.arrayRelation>${field.type}<#else>${field.type}</#if> ${name}<#if field.defaultValue?has_content> = ${field.defaultValue}<#elseif field.primaryKey && field.generationType?? && field.generationType == "UUID"> = UUID.randomUUID().toString().toUpperCase()</#if>;
@@ -242,6 +260,9 @@ public class ${clazz.name} implements Serializable {
242
260
  </#if>
243
261
  <#if (field.isUUID())!false>
244
262
  @Convert("uuid")
263
+ </#if>
264
+ <#if field.isNotEmpty()>
265
+ @NotEmpty
245
266
  </#if>
246
267
  <#if (field.XML)!false>
247
268
  @Convert("bytes")
@@ -286,6 +307,7 @@ public class ${clazz.name} implements Serializable {
286
307
  <#if field.columnDefinition?? && field.columnDefinition == "TEXT" && persistenceProvider?upper_case == "ORACLE">
287
308
  @Lob
288
309
  </#if>
310
+ @CronappColumn(attributeType="${field.attributeType}"<#if field.label?has_content>, label="${field.label}"</#if><#if field.mask?has_content>, mask="${field.mask}"</#if><#if field.searchable>, searchable = true</#if><#if field.defaultValue?has_content>, defaultValue = "${field.defaultValue?j_string}"</#if>)
289
311
  @Column(name = "${field.dbFieldName?replace("\"", "\\\"")}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition?? && (field.columnDefinition != "TEXT" || persistenceProvider?upper_case != "ORACLE")>, columnDefinition = "${field.columnDefinition}"</#if>)
290
312
  </#if>
291
313
  </#if>
@@ -1,30 +0,0 @@
1
- ## Consulte a documentação do Docker em https://docs.cronapp.io para informações sobre o conteúdo desse arquivo.
2
-
3
- FROM ubuntu:18.04 AS maven_builder
4
- RUN apt update && apt install -y maven openjdk-11-jdk npm git bash
5
- WORKDIR /app
6
- ADD pom.xml /app/pom.xml
7
- RUN git config --global url."https://".insteadOf git://
8
- ARG TIER
9
- ARG CONTEXT_USE
10
- ARG MOBILE_APP
11
-
12
- ## Para repositório EXTERNO não é necessário alterações.
13
- ## Para repositório INTERNO comente as linhas 16, 17 e 18 e retire os comentários nas linhas 21, 22, 23 e 24.
14
-
15
- ## Usando repositórios externo - JAR e NPM
16
- RUN mvn dependency:go-offline -B
17
- ADD . /app
18
- RUN cd /app && mvn package -X -Dcronapp.profile=${TIER} -Dcronapp.useContext=${CONTEXT_USE} -Dcronapp.mobileapp=${MOBILE_APP}
19
-
20
- ## Usando repositórios interno - JAR e NPM
21
- #ADD settings.xml $HOME/.m2/settings.xml
22
- #RUN npm config set registry https://my.registry.com/your-repository/name && mvn -s /app/settings.xml dependency:go-offline -B
23
- #ADD . /app
24
- #RUN cd /app && mvn -s /app/settings.xml package -X -Dcronapp.profile=${TIER} -Dcronapp.useContext=${CONTEXT_USE} -Dcronapp.mobileapp=${MOBILE_APP}
25
-
26
- FROM tomcat:9.0.17-jre11
27
- RUN rm -rf /usr/local/tomcat/webapps/* && groupadd tomcat && useradd -s /bin/false -M -d /usr/local/tomcat -g tomcat tomcat
28
- COPY --from=maven_builder /app/target/*.war /usr/local/tomcat/webapps/ROOT.war
29
- RUN chown tomcat:tomcat -R /usr/local/tomcat
30
- USER tomcat