mirror of https://github.com/vapor/docs.git
Compare commits
4 Commits
1fda10739a
...
93d5252fdc
| Author | SHA1 | Date |
|---|---|---|
|
|
93d5252fdc | |
|
|
bf81c16fca | |
|
|
07d0e7a823 | |
|
|
d42ceb9153 |
|
|
@ -0,0 +1,218 @@
|
|||
# Vapor Release Notes
|
||||
|
||||
Because it is hard, if not impossible to keep the documentation up-to-date constantly, here you will find release notes of various different packages linked to the Vapor ecosystem.
|
||||
|
||||
## [vapor](https://github.com/vapor/vapor)
|
||||
[**{{VAPOR_RELEASE}}**](https://github.com/vapor/vapor/releases/tag/{{VAPOR_ID}})
|
||||
|
||||
{{VAPOR_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent](https://github.com/vapor/fluent)
|
||||
[**{{FLUENT_RELEASE}}**](https://github.com/vapor/fluent/releases/tag/{{FLUENT_ID}})
|
||||
|
||||
{{FLUENT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-kit](https://github.com/vapor/fluent-kit)
|
||||
[**{{FLUENT_KIT_RELEASE}}**](https://github.com/vapor/fluent-kit/releases/tag/{{FLUENT_KIT_ID}})
|
||||
|
||||
{{FLUENT_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [leaf](https://github.com/vapor/leaf)
|
||||
[**{{LEAF_RELEASE}}**](https://github.com/vapor/leaf/releases/tag/{{LEAF_ID}})
|
||||
|
||||
{{LEAF_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [leaf-kit](https://github.com/vapor/leaf-kit)
|
||||
[**{{LEAF_KIT_RELEASE}}**](https://github.com/vapor/leaf-kit/releases/tag/{{LEAF_KIT_ID}})
|
||||
|
||||
{{LEAF_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-postgres-driver](https://github.com/vapor/fluent-postgres-driver)
|
||||
[**{{FLUENT_POSTGRES_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-postgres-driver/releases/tag/{{FLUENT_POSTGRES_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_POSTGRES_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-mysql-driver](https://github.com/vapor/fluent-mysql-driver)
|
||||
[**{{FLUENT_MYSQL_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-mysql-driver/releases/tag/{{FLUENT_MYSQL_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_MYSQL_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-sqlite-driver](https://github.com/vapor/fluent-sqlite-driver)
|
||||
[**{{FLUENT_SQLITE_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-sqlite-driver/releases/tag/{{FLUENT_SQLITE_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_SQLITE_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-mongo-driver](https://github.com/vapor/fluent-mongo-driver)
|
||||
[**{{FLUENT_MONGO_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-mongo-driver/releases/tag/{{FLUENT_MONGO_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_MONGO_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [postgres-nio](https://github.com/vapor/postgres-nio)
|
||||
[**{{POSTGRES_NIO_RELEASE}}**](https://github.com/vapor/postgres-nio/releases/tag/{{POSTGRES_NIO_ID}})
|
||||
|
||||
{{POSTGRES_NIO_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [mysql-nio](https://github.com/vapor/mysql-nio)
|
||||
[**{{MYSQL_NIO_RELEASE}}**](https://github.com/vapor/mysql-nio/releases/tag/{{MYSQL_NIO_ID}})
|
||||
|
||||
{{MYSQL_NIO_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [sqlite-nio](https://github.com/vapor/sqlite-nio)
|
||||
[**{{SQLITE_NIO_RELEASE}}**](https://github.com/vapor/sqlite-nio/releases/tag/{{SQLITE_NIO_ID}})
|
||||
|
||||
{{SQLITE_NIO_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [postgres-kit](https://github.com/vapor/postgres-kit)
|
||||
[**{{POSTGRES_KIT_RELEASE}}**](https://github.com/vapor/postgres-kit/releases/tag/{{POSTGRES_KIT_ID}})
|
||||
|
||||
{{POSTGRES_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [mysql-kit](https://github.com/vapor/mysql-kit)
|
||||
[**{{MYSQL_KIT_RELEASE}}**](https://github.com/vapor/mysql-kit/releases/tag/{{MYSQL_KIT_ID}})
|
||||
|
||||
{{MYSQL_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [sqlite-kit](https://github.com/vapor/sqlite-kit)
|
||||
[**{{SQLITE_KIT_RELEASE}}**](https://github.com/vapor/sqlite-kit/releases/tag/{{SQLITE_KIT_ID}})
|
||||
|
||||
{{SQLITE_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [sql-kit](https://github.com/vapor/sql-kit)
|
||||
[**{{SQL_KIT_RELEASE}}**](https://github.com/vapor/sql-kit/releases/tag/{{SQL_KIT_ID}})
|
||||
|
||||
{{SQL_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [apns](https://github.com/vapor/apns)
|
||||
[**{{APNS_RELEASE}}**](https://github.com/vapor/apns/releases/tag/{{APNS_ID}})
|
||||
|
||||
{{APNS_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [queues](https://github.com/vapor/queues)
|
||||
[**{{QUEUES_RELEASE}}**](https://github.com/vapor/queues/releases/tag/{{QUEUES_ID}})
|
||||
|
||||
{{QUEUES_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [queues-redis-driver](https://github.com/vapor/queues-redis-driver)
|
||||
[**{{QUEUES_REDIS_DRIVER_RELEASE}}**](https://github.com/vapor/queues-redis-driver/releases/tag/{{QUEUES_REDIS_DRIVER_ID}})
|
||||
|
||||
{{QUEUES_REDIS_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [redis](https://github.com/vapor/redis)
|
||||
[**{{REDIS_RELEASE}}**](https://github.com/vapor/redis/releases/tag/{{REDIS_ID}})
|
||||
|
||||
{{REDIS_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [jwt](https://github.com/vapor/jwt)
|
||||
[**{{JWT_RELEASE}}**](https://github.com/vapor/jwt/releases/tag/{{JWT_ID}})
|
||||
|
||||
{{JWT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [jwt-kit](https://github.com/vapor/jwt-kit)
|
||||
[**{{JWT_KIT_RELEASE}}**](https://github.com/vapor/jwt-kit/releases/tag/{{JWT_KIT_ID}})
|
||||
|
||||
{{JWT_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [websocket-kit](https://github.com/vapor/websocket-kit)
|
||||
[**{{WEBSOCKET_KIT_RELEASE}}**](https://github.com/vapor/websocket-kit/releases/tag/{{WEBSOCKET_KIT_ID}})
|
||||
|
||||
{{WEBSOCKET_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [routing-kit](https://github.com/vapor/routing-kit)
|
||||
[**{{ROUTING_KIT_RELEASE}}**](https://github.com/vapor/routing-kit/releases/tag/{{ROUTING_KIT_ID}})
|
||||
|
||||
{{ROUTING_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [console-kit](https://github.com/vapor/console-kit)
|
||||
[**{{CONSOLE_KIT_RELEASE}}**](https://github.com/vapor/console-kit/releases/tag/{{CONSOLE_KIT_ID}})
|
||||
|
||||
{{CONSOLE_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [async-kit](https://github.com/vapor/async-kit)
|
||||
[**{{ASYNC_KIT_RELEASE}}**](https://github.com/vapor/async-kit/releases/tag/{{ASYNC_KIT_ID}})
|
||||
|
||||
{{ASYNC_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [multipart-kit](https://github.com/vapor/multipart-kit)
|
||||
[**{{MULTIPART_KIT_RELEASE}}**](https://github.com/vapor/multipart-kit/releases/tag/{{MULTIPART_KIT_ID}})
|
||||
|
||||
{{MULTIPART_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [toolbox](https://github.com/vapor/toolbox)
|
||||
[**{{TOOLBOX_RELEASE}}**](https://github.com/vapor/toolbox/releases/tag/{{TOOLBOX_ID}})
|
||||
|
||||
{{TOOLBOX_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [core](https://github.com/vapor/core)
|
||||
[**{{CORE_RELEASE}}**](https://github.com/vapor/core/releases/tag/{{CORE_ID}})
|
||||
|
||||
{{CORE_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [swift-codecov-action](https://github.com/vapor/swift-codecov-action)
|
||||
[**{{SWIFT_CODECOV_ACTION_RELEASE}}**](https://github.com/vapor/swift-codecov-action/releases/tag/{{SWIFT_CODECOV_ACTION_ID}})
|
||||
|
||||
{{SWIFT_CODECOV_ACTION_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [api-docs](https://github.com/vapor/api-docs)
|
||||
[**{{API_DOCS_RELEASE}}**](https://github.com/vapor/api-docs/releases/tag/{{API_DOCS_ID}})
|
||||
|
||||
{{API_DOCS_DESCRIPTION}}
|
||||
|
|
@ -6,6 +6,8 @@ on:
|
|||
push:
|
||||
branches:
|
||||
- main
|
||||
repository_dispatch:
|
||||
types: [deploy-trigger]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,287 @@
|
|||
name: Update Vapor Release Notes
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
on:
|
||||
schedule:
|
||||
# - cron: '0 0 * * *' # Daily at Midnight
|
||||
# - cron: '0 0 * * 0' # Weekly every Sunday at Midnight
|
||||
- cron: '0 0 */14 * 0' # Every two weeks on Sunday at Midnight
|
||||
# - cron: '0 0 1 * *' # Every first of the month at Midnight
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
fetch-release-notes:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- id: vapor_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/vapor
|
||||
|
||||
- id: fluent_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent
|
||||
|
||||
- id: fluent_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-kit
|
||||
|
||||
- id: leaf_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/leaf
|
||||
|
||||
- id: leaf_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/leaf-kit
|
||||
|
||||
- id: fluent_postgres_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-postgres-driver
|
||||
|
||||
- id: fluent_mysql_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-mysql-driver
|
||||
|
||||
- id: fluent_sqlite_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-sqlite-driver
|
||||
|
||||
- id: fluent_mongo_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-mongo-driver
|
||||
|
||||
- id: postgres_nio_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/postgres-nio
|
||||
|
||||
- id: mysql_nio_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/mysql-nio
|
||||
|
||||
- id: sqlite_nio_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/sqlite-nio
|
||||
|
||||
- id: postgres_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/postgres-kit
|
||||
|
||||
- id: mysql_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/mysql-kit
|
||||
|
||||
- id: sqlite_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/sqlite-kit
|
||||
|
||||
- id: sql_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/sql-kit
|
||||
|
||||
- id: apns_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/apns
|
||||
|
||||
- id: queues_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/queues
|
||||
|
||||
- id: queues_redis_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/queues-redis-driver
|
||||
|
||||
- id: redis_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/redis
|
||||
|
||||
- id: jwt_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/jwt
|
||||
|
||||
- id: jwt_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/jwt-kit
|
||||
|
||||
- id: websocket_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/websocket-kit
|
||||
|
||||
- id: routing_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/routing-kit
|
||||
|
||||
- id: console_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/console-kit
|
||||
|
||||
- id: async_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/async-kit
|
||||
|
||||
- id: multipart_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/multipart-kit
|
||||
|
||||
- id: toolbox_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/toolbox
|
||||
|
||||
- id: core_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/core
|
||||
|
||||
- id: swift_codecov_action_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/swift-codecov-action
|
||||
|
||||
- id: api_docs_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/api-docs
|
||||
|
||||
- name: Generate Release Notes from Template
|
||||
run: |
|
||||
sed \
|
||||
-e "s/{{VAPOR_RELEASE}}/${{ steps.vapor_release.outputs.release }}/g" \
|
||||
-e "s/{{VAPOR_ID}}/${{ steps.vapor_release.outputs.id }}/g" \
|
||||
-e "s/{{VAPOR_DESCRIPTION}}/${{ steps.vapor_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_RELEASE}}/${{ steps.fluent_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_ID}}/${{ steps.fluent_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_DESCRIPTION}}/${{ steps.fluent_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_KIT_RELEASE}}/${{ steps.fluent_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_KIT_ID}}/${{ steps.fluent_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_KIT_DESCRIPTION}}/${{ steps.fluent_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{LEAF_RELEASE}}/${{ steps.leaf_release.outputs.release }}/g" \
|
||||
-e "s/{{LEAF_ID}}/${{ steps.leaf_release.outputs.id }}/g" \
|
||||
-e "s/{{LEAF_DESCRIPTION}}/${{ steps.leaf_release.outputs.description }}/g" \
|
||||
-e "s/{{LEAF_KIT_RELEASE}}/${{ steps.leaf_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{LEAF_KIT_ID}}/${{ steps.leaf_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{LEAF_KIT_DESCRIPTION}}/${{ steps.leaf_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_POSTGRES_DRIVER_RELEASE}}/${{ steps.fluent_postgres_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_POSTGRES_DRIVER_ID}}/${{ steps.fluent_postgres_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_POSTGRES_DRIVER_DESCRIPTION}}/${{ steps.fluent_postgres_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_MYSQL_DRIVER_RELEASE}}/${{ steps.fluent_mysql_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_MYSQL_DRIVER_ID}}/${{ steps.fluent_mysql_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_MYSQL_DRIVER_DESCRIPTION}}/${{ steps.fluent_mysql_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_SQLITE_DRIVER_RELEASE}}/${{ steps.fluent_sqlite_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_SQLITE_DRIVER_ID}}/${{ steps.fluent_sqlite_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_SQLITE_DRIVER_DESCRIPTION}}/${{ steps.fluent_sqlite_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_MONGO_DRIVER_RELEASE}}/${{ steps.fluent_mongo_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_MONGO_DRIVER_ID}}/${{ steps.fluent_mongo_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_MONGO_DRIVER_DESCRIPTION}}/${{ steps.fluent_mongo_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{POSTGRES_NIO_RELEASE}}/${{ steps.postgres_nio_release.outputs.release }}/g" \
|
||||
-e "s/{{POSTGRES_NIO_ID}}/${{ steps.postgres_nio_release.outputs.id }}/g" \
|
||||
-e "s/{{POSTGRES_NIO_DESCRIPTION}}/${{ steps.postgres_nio_release.outputs.description }}/g" \
|
||||
-e "s/{{MYSQL_NIO_RELEASE}}/${{ steps.mysql_nio_release.outputs.release }}/g" \
|
||||
-e "s/{{MYSQL_NIO_ID}}/${{ steps.mysql_nio_release.outputs.id }}/g" \
|
||||
-e "s/{{MYSQL_NIO_DESCRIPTION}}/${{ steps.mysql_nio_release.outputs.description }}/g" \
|
||||
-e "s/{{SQLITE_NIO_RELEASE}}/${{ steps.sqlite_nio_release.outputs.release }}/g" \
|
||||
-e "s/{{SQLITE_NIO_ID}}/${{ steps.sqlite_nio_release.outputs.id }}/g" \
|
||||
-e "s/{{SQLITE_NIO_DESCRIPTION}}/${{ steps.sqlite_nio_release.outputs.description }}/g" \
|
||||
-e "s/{{POSTGRES_KIT_RELEASE}}/${{ steps.postgres_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{POSTGRES_KIT_ID}}/${{ steps.postgres_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{POSTGRES_KIT_DESCRIPTION}}/${{ steps.postgres_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{MYSQL_KIT_RELEASE}}/${{ steps.mysql_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{MYSQL_KIT_ID}}/${{ steps.mysql_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{MYSQL_KIT_DESCRIPTION}}/${{ steps.mysql_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{SQLITE_KIT_RELEASE}}/${{ steps.sqlite_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{SQLITE_KIT_ID}}/${{ steps.sqlite_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{SQLITE_KIT_DESCRIPTION}}/${{ steps.sqlite_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{SQL_KIT_RELEASE}}/${{ steps.sql_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{SQL_KIT_ID}}/${{ steps.sql_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{SQL_KIT_DESCRIPTION}}/${{ steps.sql_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{APNS_RELEASE}}/${{ steps.apns_release.outputs.release }}/g" \
|
||||
-e "s/{{APNS_ID}}/${{ steps.apns_release.outputs.id }}/g" \
|
||||
-e "s/{{APNS_DESCRIPTION}}/${{ steps.apns_release.outputs.description }}/g" \
|
||||
-e "s/{{QUEUES_RELEASE}}/${{ steps.queues_release.outputs.release }}/g" \
|
||||
-e "s/{{QUEUES_ID}}/${{ steps.queues_release.outputs.id }}/g" \
|
||||
-e "s/{{QUEUES_DESCRIPTION}}/${{ steps.queues_release.outputs.description }}/g" \
|
||||
-e "s/{{QUEUES_REDIS_DRIVER_RELEASE}}/${{ steps.queues_redis_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{QUEUES_REDIS_DRIVER_ID}}/${{ steps.queues_redis_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{QUEUES_REDIS_DRIVER_DESCRIPTION}}/${{ steps.queues_redis_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{REDIS_RELEASE}}/${{ steps.redis_release.outputs.release }}/g" \
|
||||
-e "s/{{REDIS_ID}}/${{ steps.redis_release.outputs.id }}/g" \
|
||||
-e "s/{{REDIS_DESCRIPTION}}/${{ steps.redis_release.outputs.description }}/g" \
|
||||
-e "s/{{JWT_RELEASE}}/${{ steps.jwt_release.outputs.release }}/g" \
|
||||
-e "s/{{JWT_ID}}/${{ steps.jwt_release.outputs.id }}/g" \
|
||||
-e "s/{{JWT_DESCRIPTION}}/${{ steps.jwt_release.outputs.description }}/g" \
|
||||
-e "s/{{JWT_KIT_RELEASE}}/${{ steps.jwt_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{JWT_KIT_ID}}/${{ steps.jwt_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{JWT_KIT_DESCRIPTION}}/${{ steps.jwt_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{WEBSOCKET_KIT_RELEASE}}/${{ steps.websocket_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{WEBSOCKET_KIT_ID}}/${{ steps.websocket_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{WEBSOCKET_KIT_DESCRIPTION}}/${{ steps.websocket_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{ROUTING_KIT_RELEASE}}/${{ steps.routing_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{ROUTING_KIT_ID}}/${{ steps.routing_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{ROUTING_KIT_DESCRIPTION}}/${{ steps.routing_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{CONSOLE_KIT_RELEASE}}/${{ steps.console_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{CONSOLE_KIT_ID}}/${{ steps.console_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{CONSOLE_KIT_DESCRIPTION}}/${{ steps.console_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{ASYNC_KIT_RELEASE}}/${{ steps.async_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{ASYNC_KIT_ID}}/${{ steps.async_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{ASYNC_KIT_DESCRIPTION}}/${{ steps.async_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{MULTIPART_KIT_RELEASE}}/${{ steps.multipart_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{MULTIPART_KIT_ID}}/${{ steps.multipart_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{MULTIPART_KIT_DESCRIPTION}}/${{ steps.multipart_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{TOOLBOX_RELEASE}}/${{ steps.toolbox_release.outputs.release }}/g" \
|
||||
-e "s/{{TOOLBOX_ID}}/${{ steps.toolbox_release.outputs.id }}/g" \
|
||||
-e "s/{{TOOLBOX_DESCRIPTION}}/${{ steps.toolbox_release.outputs.description }}/g" \
|
||||
-e "s/{{CORE_RELEASE}}/${{ steps.core_release.outputs.release }}/g" \
|
||||
-e "s/{{CORE_ID}}/${{ steps.core_release.outputs.id }}/g" \
|
||||
-e "s/{{CORE_DESCRIPTION}}/${{ steps.core_release.outputs.description }}/g" \
|
||||
-e "s/{{SWIFT_CODECOV_ACTION_RELEASE}}/${{ steps.swift_codecov_action_release.outputs.release }}/g" \
|
||||
-e "s/{{SWIFT_CODECOV_ACTION_ID}}/${{ steps.swift_codecov_action_release.outputs.id }}/g" \
|
||||
-e "s/{{SWIFT_CODECOV_ACTION_DESCRIPTION}}/${{ steps.swift_codecov_action_release.outputs.description }}/g" \
|
||||
-e "s/{{API_DOCS_RELEASE}}/${{ steps.api_docs_release.outputs.release }}/g" \
|
||||
-e "s/{{API_DOCS_ID}}/${{ steps.api_docs_release.outputs.id }}/g" \
|
||||
-e "s/{{API_DOCS_DESCRIPTION}}/${{ steps.api_docs_release.outputs.description }}/g" \
|
||||
.github/release-notes.template.md > docs/release-notes.md
|
||||
|
||||
- name: Commit and Push Changes
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
git config --global user.name 'GitHub Actions'
|
||||
git config --global user.email 'actions@github.com'
|
||||
git add docs/release-notes.md
|
||||
git commit -m 'Update Vapor Release Notes'
|
||||
git push
|
||||
|
||||
- name: Trigger Deploy Workflow
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
event-type: deploy-trigger
|
||||
|
|
@ -7,6 +7,9 @@ Se non hai ancora installato Swift o la Toolbox Vapor, segui la guida di install
|
|||
- [Installazione → macOS](../install/macos.md)
|
||||
- [Installazione → Linux](../install/linux.md)
|
||||
|
||||
!!! tip "Suggerimento"
|
||||
Il template usato dalla Vapor Toolbox richiede Swift 6.0 o superiore
|
||||
|
||||
## Nuovo Progetto
|
||||
|
||||
Il primo passo è creare un nuovo progetto Vapor sul tuo computer. Apri il terminale e utilizza il comando `new` della Toolbox. Questo creerà una nuova cartella nella directory corrente contenente il progetto.
|
||||
|
|
@ -15,10 +18,13 @@ Il primo passo è creare un nuovo progetto Vapor sul tuo computer. Apri il termi
|
|||
vapor new hello -n
|
||||
```
|
||||
|
||||
!!! tip
|
||||
!!! tip "Suggerimento"
|
||||
L'opzione `-n` creerà un progetto con il minimo indispensabile, rispondendo automaticamente no a tutte le domande.
|
||||
|
||||
!!! tip
|
||||
!!! tip "Suggerimento"
|
||||
Puoi anche ottenere il template più recente da GitHub senza la Vapor Toolbox clonando la [repository del template](https://github.com/vapor/template-bare)
|
||||
|
||||
!!! tip "Suggerimento"
|
||||
Vapor e il template ora utilizzano `async`/`await` di default.
|
||||
Se non puoi aggiornare a macOS 12 e/o hai bisogno di continuare ad utilizzare gli `EventLoopFuture`,
|
||||
utilizza l'opzione `--branch macos10-15`.
|
||||
|
|
@ -46,13 +52,16 @@ Nella parte superiore della finestra, alla destra dei pulsanti Play e Stop, clic
|
|||
Dovresti ora veder apparire la Console nella parte inferiore della finestra di Xcode.
|
||||
|
||||
```sh
|
||||
[ INFO ] Server starting on http://
|
||||
[ INFO ] Server starting on http://127.0.0.1:8080
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
Su Linux e altri sistemi operativi (e anche su macOS se non volete utilizzare Xcode) puoi modificare il progetto nel tuo editor preferito, come Vim o VSCode. Per maggiori dettagli su come configurare altri IDE, consulta le [Guide di Swift sul Server](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md)
|
||||
|
||||
!!! tip "Suggerimento"
|
||||
Se usi VSCode come editor di testo, raccomandiamo di installare l'estensione ufficiale di Vapor: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
Per compilare ed eseguire il progetto, nel Terminale esegui:
|
||||
|
||||
```sh
|
||||
|
|
|
|||
|
|
@ -60,6 +60,9 @@ You should see the Console pop up at the bottom of the Xcode window.
|
|||
|
||||
On Linux and other OSes (and even on macOS if you don't want to use Xcode) you can edit the project in your favorite editor of choice, such as Vim or VSCode. See the [Swift Server Guides](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md) for up to date details on setting up other IDEs.
|
||||
|
||||
!!! tip
|
||||
If you're using VSCode as your code editor, we recommend installing the official Vapor extension: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
To build and run your project, in Terminal run:
|
||||
|
||||
```sh
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Puoi creare tag Leaf personalizzati usando il protocollo [`LeafTag`](https://api
|
|||
|
||||
Per mostrare come funziona, diamo un'occhiata alla creazione di un tag personalizzato `#now` che stampa l'attuale marca temporale. Il tag supporterà anche un singolo parametro opzionale per specificare il formato della data.
|
||||
|
||||
!!! tip
|
||||
!!! tip "Suggerimento"
|
||||
Se il tuo tag personalizzato renderizza HTML dovresti conformare il tuo tag personalizzato a `UnsafeUnescapedLeafTag` così che l'HTML non sia "escaped". Ricorda di controllare o ripulire ogni input dell'utente.
|
||||
|
||||
## `LeafTag`
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ Hello, #(name)!
|
|||
```
|
||||
|
||||
!!! tip "Consejo"
|
||||
Si estás usando VSCode como tu editor de código, te recomendamos instalar la extensión de Leaf para habilitar el resaltado de sintaxis: [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf).
|
||||
Si estás usando VSCode como tu editor de código, te recomendamos instalar la extensión de Vapor para habilitar el resaltado de sintaxis: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
Luego, registra una ruta (generalmente en `routes.swift` o en un controlador) para renderizar la vista.
|
||||
|
||||
|
|
|
|||
|
|
@ -41,10 +41,10 @@ app.views.use(.leaf)
|
|||
|
||||
Questo dice a Vapor di usare `LeafRenderer` quando chiami `req.view` nel tuo codice.
|
||||
|
||||
!!! note
|
||||
!!! note "Nota"
|
||||
Leaf ha una cache interna per renderizzare le pagine. Quando l'ambiente di `Application` è impostato su `.development` questa cache è disabilitata, così che i cambiamenti ai template abbiano effetto immediatamente. In `.production` e tutti gli altri ambienti la cache è abilitata di default; qualsiasi cambiamento fatto ai template non avrà effetto finché l'applicazione non viene riavviata.
|
||||
|
||||
!!! warning
|
||||
!!! warning "Attenzione"
|
||||
Per fare in modo che Leaf trovi i template quando gira su Xcode, devi impostare la [directory di lavoro personalizzata](../getting-started/xcode.md#custom-working-directory) per il tuo ambiente di lavoro Xcode.
|
||||
## Struttura della Cartella
|
||||
|
||||
|
|
@ -73,8 +73,8 @@ Adesso che Leaf è configurato, renderizziamo il tuo primo template. Dentro la c
|
|||
Hello, #(name)!
|
||||
```
|
||||
|
||||
!!! tip
|
||||
Se usi VSCode come editor di testo, raccomandiamo di installare l'estensione Leaf per abilitare l'evidenziazione della sintassi: [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf).
|
||||
!!! tip "Suggerimento"
|
||||
Se usi VSCode come editor di testo, raccomandiamo di installare l'estensione di Vapor per abilitare l'evidenziazione della sintassi: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
Quindi, registra una route (di solito fatto in `routes.swift` o un controller) per renderizzare la view.
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ Hello, #(name)!
|
|||
```
|
||||
|
||||
!!! tip
|
||||
もし、コードエディタとして VSCode を使用している場合、シンタックスハイライトを有効にするために、Leaf 拡張機能をインストールすることをお勧めします:[Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf)
|
||||
もし、コードエディタとして VSCode を使用している場合、シンタックスハイライトを有効にするために、Vapor 拡張機能をインストールすることをお勧めします:[Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode)
|
||||
|
||||
次に、View をレンダリングするルートを登録します。(通常は、`routes.swift` やコントローラで行います)
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ Hello, #(name)!
|
|||
```
|
||||
|
||||
!!! tip
|
||||
If you're using VSCode as your code editor, we recommend installing the Leaf extension to enable syntax highlighting: [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf).
|
||||
If you're using VSCode as your code editor, we recommend installing the Vapor extension to enable syntax highlighting: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
Then, register a route (usually done in `routes.swift` or a controller) to render the view.
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ Hello, #(name)!
|
|||
```
|
||||
|
||||
!!! tip
|
||||
Als je VSCode als code editor gebruikt, raden we aan de Leaf extensie te installeren om syntax highlighting mogelijk te maken: [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf).
|
||||
Als je VSCode als code editor gebruikt, raden we aan de Vapor extensie te installeren om syntax highlighting mogelijk te maken: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
Registreer dan een route (meestal gedaan in `routes.swift` of een controller) om de view te renderen.
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ Cześć, #(name)!
|
|||
```
|
||||
|
||||
!!! tip
|
||||
Jeśli korzystasz z VSCode, rekomendowane jest zainstalowanie rozszerzenia do Leaf (Podpowiedzi i podkreślanie składni): [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf).
|
||||
Jeśli korzystasz z VSCode, rekomendowane jest zainstalowanie rozszerzenia do Vapor (Podpowiedzi i podkreślanie składni): [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
|
||||
|
||||
Następnie: Dodaj ścieżkę (przeważnie w `routes.swift` lub w kontrolerze), żeby wyrenderować widok.
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ Hello, #(name)!
|
|||
```
|
||||
|
||||
!!! tip "建议"
|
||||
如果你正在使用 VSCode 作为代码编辑器,我们推荐安装 [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf) 扩展,以启用语法高亮功能。
|
||||
如果你正在使用 VSCode 作为代码编辑器,我们推荐安装 [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode) 扩展,以启用语法高亮功能。
|
||||
|
||||
然后,注册一个路由(通常在 `routes.swift` 中或一个控制器中完成注册)来渲染视图。
|
||||
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ Il tag `#unsafeHTML` agisce come un tag di variabile - p.es. `#(variable)`. Per
|
|||
The time is #unsafeHTML(styledTitle)
|
||||
```
|
||||
|
||||
!!! note
|
||||
!!! note "Nota"
|
||||
Dovresti fare attenzione quando usi questo tag per assicurarti che la variabile che gli fornisci non esponga i tuoi utenti a un attacco XSS.
|
||||
|
||||
#### `#dumpContext`
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
Questa libreria è un'integrazione tra Vapor e [**RediStack**](https://github.com/swift-server/RediStack), che è il driver sottostante che comunica con Redis.
|
||||
|
||||
!!! note
|
||||
!!! note "Nota"
|
||||
La maggior parte delle funzionalità di Redis sono fornite da **RediStack**.
|
||||
Raccomandiamo fortemente di acquisire familiarità con la sua documentazione.
|
||||
|
||||
|
|
@ -75,14 +75,14 @@ Questo è l'indice del database che intendi selezionare quando ogni connessione
|
|||
|
||||
Questo ti evita di dover mandare il comando `SELECT` a Redis da te.
|
||||
|
||||
!!! warning
|
||||
!!! warning "Attenzione"
|
||||
La selezione del database non è mantenuta. Stai attento quando mandi il comando `SELECT` da te.
|
||||
|
||||
### Opzioni del Pool di Connessioni
|
||||
|
||||
> Documentazione dell'API: [`RedisConfiguration.PoolOptions`](https://api.vapor.codes/redis/documentation/redis/redisconfiguration/pooloptions)
|
||||
|
||||
!!! note
|
||||
!!! note "Nota"
|
||||
Solo le opzioni cambiate più comunemente sono evidenziate qui. Per tutte le altre opzioni, fai riferimento alla documentazione dell'API.
|
||||
|
||||
#### minimumConnectionCount
|
||||
|
|
@ -97,7 +97,7 @@ Questa è conosciuta come connessione "cold start", e ha dell'overhead rispetto
|
|||
|
||||
Quest'opzione determina il comportamento di come il numero massimo di connessioni è mantenuto.
|
||||
|
||||
!!! seealso
|
||||
!!! seealso "Guarda anche"
|
||||
Fai riferimento all'API `RedisConnectionPoolSize` per familiarizzare con le opzioni disponibili.
|
||||
|
||||
## Inviare un Comando
|
||||
|
|
|
|||
|
|
@ -1,65 +0,0 @@
|
|||
# Notas de Versiones de Vapor
|
||||
|
||||
Debido a que es difícil, si no imposible mantener la documentación actualizada constantemente, aquí encontrarás notas de lanzamiento de varios paquetes diferentes vinculados al ecosistema Vapor.
|
||||
|
||||
## vapor
|
||||
|
||||
## fluent
|
||||
|
||||
## fluent-kit
|
||||
|
||||
## leaf
|
||||
|
||||
## leaf-kit
|
||||
|
||||
## fluent-postgres-driver
|
||||
|
||||
## fluent-mysql-driver
|
||||
|
||||
## fluent-sqlite-driver
|
||||
|
||||
## fluent-mongo-driver
|
||||
|
||||
## postgres-nio
|
||||
|
||||
## mysql-nio
|
||||
|
||||
## sqlite-nio
|
||||
|
||||
## postgres-kit
|
||||
|
||||
## mysql-kit
|
||||
|
||||
## sqlite-kit
|
||||
|
||||
## sql-kit
|
||||
|
||||
## apns
|
||||
|
||||
## queues
|
||||
|
||||
## queues-redis-driver
|
||||
|
||||
## redis
|
||||
|
||||
## jwt
|
||||
|
||||
## jwt-kit
|
||||
|
||||
## websocket-kit
|
||||
|
||||
## routing-kit
|
||||
|
||||
## console-kit
|
||||
|
||||
## async-kit
|
||||
|
||||
## multipart-kit
|
||||
|
||||
## toolbox
|
||||
|
||||
## core
|
||||
|
||||
## swift-codecov-action
|
||||
|
||||
## api-docs
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
# Note sulla Versione di Vapor
|
||||
|
||||
Siccome è difficile, se non impossibile, tenere la documentazione aggiornata costantemente, qui troverai le note sulla versione (release notes) di vari pacchetti differenti legati all'ecosistema Vapor.
|
||||
|
||||
## vapor
|
||||
|
||||
## fluent
|
||||
|
||||
## fluent-kit
|
||||
|
||||
## leaf
|
||||
|
||||
## leaf-kit
|
||||
|
||||
## fluent-postgres-driver
|
||||
|
||||
## fluent-mysql-driver
|
||||
|
||||
## fluent-sqlite-driver
|
||||
|
||||
## fluent-mongo-driver
|
||||
|
||||
## postgres-nio
|
||||
|
||||
## mysql-nio
|
||||
|
||||
## sqlite-nio
|
||||
|
||||
## postgres-kit
|
||||
|
||||
## mysql-kit
|
||||
|
||||
## sqlite-kit
|
||||
|
||||
## sql-kit
|
||||
|
||||
## apns
|
||||
|
||||
## queues
|
||||
|
||||
## queues-redis-driver
|
||||
|
||||
## redis
|
||||
|
||||
## jwt
|
||||
|
||||
## jwt-kit
|
||||
|
||||
## websocket-kit
|
||||
|
||||
## routing-kit
|
||||
|
||||
## console-kit
|
||||
|
||||
## async-kit
|
||||
|
||||
## multipart-kit
|
||||
|
||||
## toolbox
|
||||
|
||||
## core
|
||||
|
||||
## swift-codecov-action
|
||||
|
||||
## api-docs
|
||||
|
|
@ -2,64 +2,124 @@
|
|||
|
||||
Because it is hard, if not impossible to keep the documentation up-to-date constantly, here you will find release notes of various different packages linked to the Vapor ecosystem.
|
||||
|
||||
## vapor
|
||||
## [vapor](https://github.com/vapor/vapor)
|
||||
|
||||
## fluent
|
||||
---
|
||||
|
||||
## fluent-kit
|
||||
## [fluent](https://github.com/vapor/fluent)
|
||||
|
||||
## leaf
|
||||
---
|
||||
|
||||
## leaf-kit
|
||||
## [fluent-kit](https://github.com/vapor/fluent-kit)
|
||||
|
||||
## fluent-postgres-driver
|
||||
---
|
||||
|
||||
## fluent-mysql-driver
|
||||
## [leaf](https://github.com/vapor/leaf)
|
||||
|
||||
## fluent-sqlite-driver
|
||||
---
|
||||
|
||||
## fluent-mongo-driver
|
||||
## [leaf-kit](https://github.com/vapor/leaf-kit)
|
||||
|
||||
## postgres-nio
|
||||
---
|
||||
|
||||
## mysql-nio
|
||||
## [fluent-postgres-driver](https://github.com/vapor/fluent-postgres-driver)
|
||||
|
||||
## sqlite-nio
|
||||
---
|
||||
|
||||
## postgres-kit
|
||||
## [fluent-mysql-driver](https://github.com/vapor/fluent-mysql-driver)
|
||||
|
||||
## mysql-kit
|
||||
---
|
||||
|
||||
## sqlite-kit
|
||||
## [fluent-sqlite-driver](https://github.com/vapor/fluent-sqlite-driver)
|
||||
|
||||
## sql-kit
|
||||
---
|
||||
|
||||
## apns
|
||||
## [fluent-mongo-driver](https://github.com/vapor/fluent-mongo-driver)
|
||||
|
||||
## queues
|
||||
---
|
||||
|
||||
## queues-redis-driver
|
||||
## [postgres-nio](https://github.com/vapor/postgres-nio)
|
||||
|
||||
## redis
|
||||
---
|
||||
|
||||
## jwt
|
||||
## [mysql-nio](https://github.com/vapor/mysql-nio)
|
||||
|
||||
## jwt-kit
|
||||
---
|
||||
|
||||
## websocket-kit
|
||||
## [sqlite-nio](https://github.com/vapor/sqlite-nio)
|
||||
|
||||
## routing-kit
|
||||
---
|
||||
|
||||
## console-kit
|
||||
## [postgres-kit](https://github.com/vapor/postgres-kit)
|
||||
|
||||
## async-kit
|
||||
---
|
||||
|
||||
## multipart-kit
|
||||
## [mysql-kit](https://github.com/vapor/mysql-kit)
|
||||
|
||||
## toolbox
|
||||
---
|
||||
|
||||
## core
|
||||
## [sqlite-kit](https://github.com/vapor/sqlite-kit)
|
||||
|
||||
## swift-codecov-action
|
||||
---
|
||||
|
||||
## api-docs
|
||||
## [sql-kit](https://github.com/vapor/sql-kit)
|
||||
|
||||
---
|
||||
|
||||
## [apns](https://github.com/vapor/apns)
|
||||
|
||||
---
|
||||
|
||||
## [queues](https://github.com/vapor/queues)
|
||||
|
||||
---
|
||||
|
||||
## [queues-redis-driver](https://github.com/vapor/queues-redis-driver)
|
||||
|
||||
---
|
||||
|
||||
## [redis](https://github.com/vapor/redis)
|
||||
|
||||
---
|
||||
|
||||
## [jwt](https://github.com/vapor/jwt)
|
||||
|
||||
---
|
||||
|
||||
## [jwt-kit](https://github.com/vapor/jwt-kit)
|
||||
|
||||
---
|
||||
|
||||
## [websocket-kit](https://github.com/vapor/websocket-kit)
|
||||
|
||||
---
|
||||
|
||||
## [routing-kit](https://github.com/vapor/routing-kit)
|
||||
|
||||
---
|
||||
|
||||
## [console-kit](https://github.com/vapor/console-kit)
|
||||
|
||||
---
|
||||
|
||||
## [async-kit](https://github.com/vapor/async-kit)
|
||||
|
||||
---
|
||||
|
||||
## [multipart-kit](https://github.com/vapor/multipart-kit)
|
||||
|
||||
---
|
||||
|
||||
## [toolbox](https://github.com/vapor/toolbox)
|
||||
|
||||
---
|
||||
|
||||
## [core](https://github.com/vapor/core)
|
||||
|
||||
---
|
||||
|
||||
## [swift-codecov-action](https://github.com/vapor/swift-codecov-action)
|
||||
|
||||
---
|
||||
|
||||
## [api-docs](https://github.com/vapor/api-docs)
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ Questo protocollo richiede che implementi il metodo `authenticate(basic:for:)`,
|
|||
|
||||
In questo autenticatore di prova, il nome utente e la password vengono verificati rispetto ai valori codificati. In un autenticatore reale, potresti voler effettuare un controllo su un database o su un'API esterna, per questo motivo il metodo `authenticate` consente di restituire una future.
|
||||
|
||||
!!! tip
|
||||
!!! tip "Suggerimento"
|
||||
Le password non devono mai essere memorizzate in un database in chiaro. Utilizzate sempre gli hash delle password per il confronto.
|
||||
|
||||
Se i parametri di autenticazione sono corretti, in questo caso corrispondono ai valori codificati, viene effettuato l'accesso a uno `User` di nome Vapor. Se i parametri di autenticazione non corrispondono, non viene registrato alcun utente, il che significa che l'autenticazione è fallita.
|
||||
|
|
@ -173,7 +173,7 @@ Questo protocollo richiede l'implementazione di `authenticate(bearer:for:)` che
|
|||
|
||||
In questo autenticatore di prova, il token viene testato rispetto a un valore codificato. In un vero autenticatore, potresti voler verificare il token confrontandolo con un database o usando misure crittografiche, come si fa con JWT. Ecco perché il metodo `authenticate` consente di restituire una future.
|
||||
|
||||
!!! tip
|
||||
!!! tip "Suggerimento"
|
||||
Quando si implementa la verifica dei token, è importante considerare la scalabilità orizzontale. Se l'applicazione deve gestire molti utenti contemporaneamente, l'autenticazione può essere un potenziale collo di bottiglia. Considera il modo in cui il tuo progetto scalerà su più istanze dell'applicazione in esecuzione contemporaneamente.
|
||||
|
||||
Se i parametri di autenticazione sono corretti, e in questo caso corrispondono al valore codificato, viene effettuato l'accesso a un `Utente` di nome Vapor. Se i parametri di autenticazione non corrispondono, non viene registrato alcun utente, il che significa che l'autenticazione è fallita.
|
||||
|
|
@ -328,7 +328,7 @@ Non dimenticare di aggiungere la migrazione a `app.migrations`.
|
|||
app.migrations.add(User.Migration())
|
||||
```
|
||||
|
||||
!!! tip
|
||||
!!! tip "Suggerimento"
|
||||
Poiché gli indirizzi email non sono sensibili alle maiuscole e alle minuscole, puoi aggiungere un [`Middleware`](../fluent/model.md#lifecycle) che coercizzi l'indirizzo email in minuscolo prima di salvarlo nella base dati. Tieni presente, però, che `ModelAuthenticatable` usa un confronto sensibile alle maiuscole e alle minuscole, quindi se fai questo devi assicurarti che l'input dell'utente sia tutto minuscolo, o con la coercizione delle maiuscole nel client o con un autenticatore personalizzato.
|
||||
|
||||
La prima cosa di cui hai bisogno è un endpoint per creare nuovi utenti. Useremo `POST /users`. Crea una struttura [Content](../basics/content.md) che rappresenti i dati che questo endpoint si aspetta.
|
||||
|
|
@ -749,7 +749,7 @@ Questi middleware svolgono le seguenti funzioni:
|
|||
* Il middleware delle sessioni prende il cookie di sessione fornito nella richiesta e lo converte in una sessione.
|
||||
* l'autenticatore di sessione prende la sessione e verifica se esiste un utente autenticato per quella sessione. In caso affermativo, il middleware autentica la richiesta. Nella risposta, l'autenticatore di sessione vede se la richiesta ha un utente autenticato e lo salva nella sessione, in modo che sia autenticato nella richiesta successiva.
|
||||
|
||||
!!! note
|
||||
!!! note "Nota"
|
||||
Di default, il cookie di sessione non è impostato su `secure` e/o `httpOnly`. Per ulteriori informazioni su come configurare i cookie, consultare le [API di sessione](../advanced/sessions.md#configuration) di Vapor.
|
||||
|
||||
### Protezione delle Route
|
||||
|
|
|
|||
|
|
@ -89,5 +89,5 @@ let codes = hotp.generate(counter: 25, range: 2)
|
|||
```
|
||||
Nell'esempio qui sopra viene fornito un margine di 2, che significa che le HOTP saranno calcolate con i valori del contatore `23 ... 27`, e tutti questi codici verranno restituiti.
|
||||
|
||||
!!! warning
|
||||
!!! warning "Attenzione"
|
||||
N.B.: Più grande è il margine di errore usato, maggiore è il tempo e la libertà che ha un attacante per agire, diminuendo la sicurezza dell'algoritmo.
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ Il primo passo per aggiornare a Vapor 4 è aggiornare il file delle dipendenze d
|
|||
|
||||
Tutti i pacchetti che sono stati aggiornati a Vapor 4 avranno la versione major incrementata di 1.
|
||||
|
||||
!!! warning
|
||||
!!! warning "Attenzione"
|
||||
L'identificatore di pre-rilascio `-rc` indica che alcuni pacchetti di Vapor 4 non sono ancora stati rilasciati ufficialmente.
|
||||
|
||||
### Vecchi Pacchetti
|
||||
|
|
|
|||
Loading…
Reference in New Issue