amplication

πŸ”₯πŸ”₯πŸ”₯ The Only Production-Ready AI-Powered Backend Code Generation

OTHER License

Downloads
864
Stars
15.2K
Committers
285

Bot releases are hidden (Show)

amplication - 0.10.3

Published by mshidlov almost 3 years ago

Amplication strongly believes in constant improvement in the product πŸ’œ

Today we are releasing a better version of our product, with various bug fixes and more stability. ✌️

We are happy to announce the patch release of Amplication 0.10.3. πŸ₯³

This release will fix some essential bug fixes! πŸ›

General πŸ“‘

Features ❇️

  • Added Github Workflow which will trigger when we push code to Github, it will check for build, test, format, and lint. #1989

Fixes 🧰:

  • All packages dependencies were set to a fixed version and dependencies that should be dev dependency updated and redundant dependencies were removed. #1807

Documentations πŸ“–:

  • Readme is updated for the missing step of npm install. #1986

Amplication Server πŸ’Ύ

Features ❇️

  • UI is changed, now a user can create a new Github repository directly from amplication instead of selecting existing repository. #1791

Fixes 🧰:

  • Fixed the error message if someone tries to change a locked entity #1852

Documentations πŸ“–:

  • Readme.md is updated for the automatic setup process. #1987

Generated App πŸ’»

Features ❇️

  • Now you can integrate GraphQL libraries #1797

Fixes 🧰:

  • Removed the unnecessary comments from the generated code #2027
  • Removed an empty file called token.service.ts in the server tests folder #2020

The complete list of all issues resolved in this release can be found on the πŸ‘‰ 0.10.3 milestone πŸ‘ˆ on Github

Credits πŸ‘

For this release, we had the help of 7 committers – thank you all very much!

  • @tupe12334 πŸ’―
  • @mshidlov πŸ’―
  • @yonantan πŸ’―
  • @yuval-hazaz πŸ’―
  • @souravjain540 πŸ’―
  • @AsianCat54x πŸ’―
  • @SachinHatikankar100 πŸ’―
amplication - 0.10.2

Published by mshidlov almost 3 years ago

We are pleased to announce a new patch release of Amplication 0.10.2.
This release resolves essential bug fixes.

Noteworthy additions and improvements in this release:

General

Fixes:

  • Lerna bootstrap command flags in the main dockerfile set incorrectly #1833

Documentation:

  • Upgrade the Issue Template to use GitHub Issue forms #1855

Generated App

Fixes:

  • Generated Server - Basic Auth returns JWT token #1846
  • Data Service Generator: restful jwt login missing token #1821

The complete list of all issues resolved in this release can be found on the 0.10.2 milestone on Github

Credits

For this release, we had the help of 4 committers – thank you all very much!

@tupe12334
@Rutam21
@SachinHatikankar100
@mshidlov

amplication - v0.10.1

Published by tupe12334 almost 3 years ago

We are pleased to announce a new patch release of Amplication 0.10.1.
This release fixes a critical bug in the applications sandbox deployment.

Noteworthy additions and improvements in this release:

General

  • Single Command Setup Script - We bundled all the steps for setting up Amplication's development environment in a single setup script. After cloning the Amplication repository, you can run npm install && npm run setup:dev to set up all the project packages and run the docker development database. #1798

Amplication Server

Fixes:

  • End to end tests package removed to solve dependency related issue #1773
  • Setting root package.json node\npm version to 14.X\7.X (LTS) as required #1764
  • Align package-lock.jsons files #1777 #1772
  • Server: Remove dependency for typegraphql from package-lock #1719

Generated App

Breaking Changes:

Additions:

  • Customize your auth strategy - We updated the auth strategy to align with our Base and implementations logic to give the developer complete control to extend or change the default auth strategy logic. Now you can write your code to extend the basic functionality. #1788

  • Health service - We added health checks and readiness APIs to the generated app to indicate the ability of the generated server to serve incoming requests. This new capability will allow monitoring and orchestration services like load balancers, auto scalers, and k8s, to better integrate with Amplication generated servers. #1775

Fixes:

  • Add react.env.d.ts to Admin UI #1780
  • JWT strategy updated to work with auth service #1783
  • Add to .gitignore .DS_Store` #1786
  • Remove .d.ts from .gitignore #1781

The complete list of all issues resolved in this release can be found on the 0.10.1 milestone on Github

Credits

For this release, we had the help of 4 committers – thank you all very much!

@tupe12334
@mshidlov
@SachinHatikankar100
@g-traub

amplication - v0.10.0

Published by yuval-hazaz about 3 years ago

Today, we are excited to release v0.10.0 🀘

Generated app - JWT auth provider

From this version, the generated app includes a new authentication schema, the JWT authentication schema.
JWT is used by default for new apps.
Existing apps are not changed and keep using the basic HTTP schema. You can change that on the new setting page.

image

Secrets Manager

As we progress to our goals, we implement more and more conventions and standards. The SecretsManager is a service for reading secrets in the server code.
By default, it used a provider that read the secrets from the .env file. You can use custom providers to read secrets from other places, like AWS Secrets Manager.
See our docs for more details on custom providers.

Custom seed

You can now use a custom script to seed the database with any data on initialization.
To do that use the customSeed.ts file.
See our docs for more details on the custom seed.

Thaks to

amplication - v0.9.0

Published by yuval-hazaz about 3 years ago

Today, we are excited to release v0.9.0 πŸš€

Generated App - Default Authentication Guard

From this version, the generated app includes a new authentication guard named "DefaultAuthGuard" (for REST endpoint) and "GqlDefaultAuthGuard" (for GraphQL mutations and queries).

Currently, the default auth guards are just a wrapper (extending the class) around "BasicAuthGuard" and "GqlBasicAuthGuard".

DefaultAuthGuard

import { BasicAuthGuard } from "./basicAuth.guard";

export class DefaultAuthGuard extends BasicAuthGuard {}

GqlDefaultAuthGuard

import { GqlBasicAuthGuard } from "./gqlBasicAuth.guard";

export class GqlDefaultAuthGuard extends GqlBasicAuthGuard {}

The purpose of these files is to support new authentication providers without updating the relevant decorators throughout the system.
From now, all the REST API controllers and GraphQL queries and mutation are importing only the DefaultAuthGuard.

REST API controller

@common.UseGuards(defaultAuthGuard.DefaultAuthGuard)

GraphQL resolver

@common.UseGuards(gqlDefaultAuthGuard.GqlDefaultAuthGuard)

In the next versions, we will add support for additional authentication providers (e.g., JWT authentication). You will be able to select and customize the authentication provider without breaking the code in any other file.

amplication - v0.8.0

Published by yuval-hazaz about 3 years ago

Today, we are excited to release v0.8.0 πŸš€

Unique Field

Starting today, you can now add a Unique Field attribute for specific fields.
Fields with the Unique Field attribute generate a unique field attribute in the Prisma schema and a unique field constraint on the database.
You can only add the Unique Field attribute to specific fields and not multiple fields.

image

Improve docker build time on sandbox

We reduced the docker build duration on the sandbox environment from around 9 minutes to around 4 minutes.

Dependencies updates

The dependencies in the generated app were updated using renovate (https://github.com/renovatebot/renovate) and are now up to date.

Fixes and improvements

βœ… #1312 - Client: Build errors visibility

Credits

Huge thanks to @lalit8347 and @TimDurward for helping! ❀️

amplication - v0.7.0

Published by yuval-hazaz over 3 years ago

Today, we are excited to release v0.7.0

App Settings

Starting today, you can now control some of the database parameters from Amplication UI.
The parameter values are injected into the generated code and allow finer control on the development environment.

image

Parameter - Host

The name of the database host.

Parameter - Database Name

The database name. By default is field is empty.
You can use this field to deploy two or more different apps on the same DB server in the development environment, by settings a unique name for the DB on each app.

Parameter - Port

Port number to connect to at the server host.
You can use this field to run two or more separate PostgreSQL containers for different apps in the development environment, by settings a unique Port number for the DB on each app.

Parameter - User

PostgreSQL user name to connect as.

Parameter - Password

Password to be used to connect to the DB.
The password appears in clear text in the generated app.
It should only be used for the development environment password and should not include sensitive data.

Read more here about PostgreSQL connection string https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING

Impacted files

The following files in the generated code are impacted when the DB parameters are changed:

./.env

POSTGRESQL_USER=${dbUser}
POSTGRESQL_PASSWORD=${dbPassword}
POSTGRESQL_PORT=${dbPort}

./server/.env

POSTGRESQL_USER=${dbUser}
POSTGRESQL_PASSWORD=${dbPassword}
POSTGRESQL_PORT=${dbPort}
POSTGRESQL_URL=postgres://${dbUser}:${dbPassword}@${dbHost}:${dbPort}${dbName}

COMPOSE_PROJECT_NAME parameter

Starting with this version, a new environment variable "COMPOSE_PROJECT_NAME" is added to the server .env file.
This variable is used to allow running multiple applications generated with Amplication on the development environment.
Without this parameter, when using docker-compose to run the DB docker image, the image gets the same name for all apps generated with Amplication.
See issue #1423 for more details

Dependencies updates

The dependencies in the generated app were updated using renovate (https://github.com/renovatebot/renovate) and are now up to date.

Fixes and improvements

βœ… #1420 - Server build: Build process failure due to a missing dependency
βœ… #1425 - Admin UI: password field is disabled

amplication - v0.6.5

Published by yuval-hazaz over 3 years ago

Today, we are excited to release v0.6.5

Workspace members

Now you can invite team members to work and collaborate with you in Amplication
The invited users have full access to all apps in the workspace, and can also create new apps.

image

amplication - v0.6.4

Published by yuval-hazaz over 3 years ago

Today, we are excited to release v0.6.4

Workspaces

We are happy to introduce workspaces.
Workspace is a wrapper to all your apps, and from now on you can create and manage multiple workspaces to better organize your apps.
This is an important step before adding support to invite team members to work and collaborate with you in Amplication.

image

amplication - v0.6.3

Published by yuval-hazaz over 3 years ago

Today, we are releasing version 0.6.3.

Features
βœ… #1393 - Generated app: Add a UserInfo decorator to access the current user data from a resolver

Fixes
βœ… #1387 - Data Service Generator: Relation properties are not generated on the model

Big thanks to @yenicelik for reporting these issues.

amplication - v0.6.1

Published by yuval-hazaz over 3 years ago

Today, we are releasing the 0.6.1 patch release.

Fixes

βœ… #1377 - Admin UI failed to fetch data from entities with multiple words in their name
βœ… #1379 - admin-UI cannot handle a many-to-many relationship
βœ… #1376 - Import from Excel, should not allow for blank entity name
βœ… #1386 - Admin UI: Failed to generate list view for non-searchable relations

Big thanks to @twavis for reporting some of these issues in record time.

amplication - v0.6.0

Published by yuval-hazaz over 3 years ago

Today, we are excited to release v0.6.0

This version contains breaking changes, you may need to manually resolve conflicts in your custom code. Read below for more details.

GraphQL and REST API advanced search

The search queries in GraphQL and REST API were updated with advanced filtering, sorting, and pagination:

Filters

You can filter the results of your search query by any field of the queried object, with advanced filters like startsWith, Contains and more. The available filters are determined by the data type of each field. (e.g. String. Boolean, DataTime)

query{
  customers(where:{
    firstName:{
      contains:"jack"
    }
  }){
    id
    firstName
    lastName
    createdAt
    updatedAt
  }
}

Sorting

You can sort the results of your search query by using the orderBy parameter

query{
  customers(orderBy:{
    firstName:Asc
  }
  ){
    id
    firstName
    lastName
    createdAt
    updatedAt
  }
}

Paginations

The search queries now support pagination using the skip and take parameters

query{
  customers(
    skip:10,
    take:5
  ){
    id
    firstName
    lastName
    createdAt
    updatedAt
  }
}

Searchable flag

The Searchable flag in the entity field settings now determines whether the records can be searched based on the value of that field.

_Meta query in GraphQL

The new _EntitiesMeta API can be used to get the record count of a query.
The meta query support all the parameters that are supported in the FindMany query.

query{
  _customersMeta(where:{
    firstName:{
      contains:"jack"
    }
  }){
    count
  }
}

The meta query can be used together with the findMany query in order to get the result count.

query customers($where: CustomerWhereInput, $orderBy: CustomerOrderByInput, $skip: Float, $take: Float) {
  items: customers(where: $where, orderBy: $orderBy, skip: $skip, take: $take) {
    id
    createdAt
    updatedAt
    firstName
    lastName
    __typename
  }
  total: _customersMeta(where: $where, orderBy: $orderBy, skip: $skip, take: $take) {
    count
    __typename
  }
}

New Admin UI built with react-admin

New and feature-reach Admin UI was built from scratch using React-Admin.
The new Admin UI includes pagination, sorting, and a master-details view.
The new admin UI is generated to a new folder named "admin-ui".
In case you already generated the admin UI with a previous version and pushed the code to GitHub, the previously generated code is left untouched in the "admin" folder.

Import data schema from Excel file

You can now create a full app, just by importing an Excel file or one of many other flat-file formats (e.g. CSV).
A visual entity diagram allows you to normalize the data schema before you create the app.

Rebuild app without changes

You can now rebuild your app and trigger a sync with GitHub and a deployment to sandbox even without making any changes in your app. The Commit button is available and enabled, so you can use it any time you need it.

Improved code generation

All DTOs, and models are now generated with an additional line break after each property for better readability.

βœ… #1346 - Data Service Generator: roles not saving properly
βœ… #1193 - Client: I can't set specific permissions to fields
βœ… #1314 - Server: Swagger documentation does not match REST-API
βœ… #1303 - Client: text search input in the entity field is unreadable
βœ… #1327 - Client: browser block popup and client don't alert
βœ… #1325 - GitHub Connector: Sync repo on Safari

Big thanks to @Jithinlal, @timhuebenerm, @MatanForU, @tupe12334, and @go4cas for reporting these issues.

Credits

Huge thanks to @tupe12334 for helping, and for many members on our Discord server who suggested many of the features released today.

amplication - v0.5.3

Published by yuval-hazaz over 3 years ago

Today, we are excited to release v0.5.3

Added support for new field data type - JSON

With JSON, you can create fields that store and include different kinds of data in your models. This makes it easier for you to add custom fields to your applications, to be used with GraphQL or REST API.

You can now create JSON fields as part of your data model when creating an entity field.

Big thanks to @gabrielmoncea and @mrtrombone for suggesting this feature

Deployer - remove staled sandbox environments

Staled sandbox environments are destroyed after 30 days

Fixes and improvements

βœ… #684 - Numeric data types allow negative ranges
βœ… #1151 - Numeric data type validation range was removed to allow any valid numeric values
βœ… #1293 - Client: Validation for entity name plural vs singular form

Credits

Huge thanks to @almogbhl for helping!

amplication - v0.5.2

Published by yuval-hazaz over 3 years ago

Today, we are excited to release v0.5.2

This version contains breaking changes, you may need to manually resolve conflicts in your custom code. Read below for more details.

Upgraded TypeScript to v4.2.3

Amplication server and the generated apps were upgraded to use TypeScript v4.2.3

Upgraded Prisma to version v2.19.0

  • Amplication server was upgraded to use Prisma v2.19.0
  • The generated apps were upgraded to use Prisma v2.19.0

How to upgrade your existing app

After generating a new version of your app, follow these instructions:

  • Uninstall @prisma\cli to avoid conflicts with the new prisma package (Prisma CLI is now part of prisma package)
$ cd server
$ npm un @prisma/cli
  • Run npm i in the server folder to upgrade to the new packages
$ npm i
  • Generate the new Prisma client
$ npx prisma generate
  • Delete the ./server/prisma/migrations folder. This folder contains migrations in the old format.

  • Run npx prisma migrate dev to generate new migrations. This command will also reset (delete and recreate) the DB, so make sure you run on your dev environment.

$ npx prisma migrate dev
  • Recreate the seed data in the DB with the default user (admin:admin)
npm run seed 

Note that upgrading Prisma version comes with some breaking changes.

You can read the Prisma release notes to learn more about all the changes that come with the new version - https://github.com/prisma/prisma/releases.

Breaking changes in the generated app

Specifically, these changes impact the following areas in the generated apps:

  • We've renamed FindManyEntityArgs to EntityFindManyArgs to align with the changes in Prisma
  • We've renamed FindOneEntityArgs to EntityFindUniqueArgs to align with the changes in Prisma

Breaking changes in Amplication server

If you are running with a local Amplication server, you need to reset your development DB to start working with the new version of Prisma migrate.

This command will delete all the data in the development DB and will reset the migrations table

npx prisma migrate reset

Implement Helm Chart

Added support to deploy Amplication on a Kubernetes cluster using Helm charts.
Read more about it here https://docs.amplication.com/docs/helm-chart/

Fixes and improvements

βœ… #1298 - DSG: WhereUniqueInput is missing @Field property decorator
βœ… #1272 - Docker build fails when entities with reserved words are used.
βœ… #1293 - Validation for entity name plural vs singular form

Big thanks to @AndrewTraub, @EndersDev, and @MatanForU for reporting these issues.

Credits

Huge thanks to @almogbhl, @TimDurward for helping!
Thanks to @prisma/prisma for their great format for release notes which we learned from and adopted.

amplication - v0.5.1

Published by yuval-hazaz over 3 years ago

Code generation changes on base classes (#1292):

βœ… Add findProperty function on the base service for to-many relations (e.g. CustomerServiceBase.findOrders)
βœ… Add getProperty function on the base service for to-one relations (e.g. CustomerServiceBase.getCity)
βœ… Add async syntax for all functions on base service
βœ… Use the new findProperty function on controller and resolver
βœ… Use the new getProperty function on resolver

Fixes

βœ… Fixed #1287 DSG: 'references' is missing on Prisma schema on annotated relations

amplication - v0.5.0

Published by yuval-hazaz over 3 years ago

amplication - v0.4.0

Published by yuval-hazaz over 3 years ago

New server design to support custom code
https://docs.amplication.com/docs/how-to/custom-code

amplication - v0.3.2

Published by yuval-hazaz over 3 years ago

Big improvements in how we manage related entities.

  • Now relations use navigation fields on both sides, so you can easily navigate from child to parent and from parent to child.
  • One-to-one, one-to-many, many-to-many.
  • Self-relations.
  • Multiple relations between two entities.
  • Resolves multiple bugs:
    • #1231
    • #1200
    • #1104
    • #1126
    • #1131
    • #1143
    • #1103
    • #1100
amplication - v0.3.1

Published by yuval-hazaz over 3 years ago

Bug Fixes:

  • Client: Discarded changes are not cleared from cache (#1202)
  • Client: Does not support single letter fields in Entities (#1204)
  • DSG: Failed build does not throw errors (#1213)
amplication - v0.3.0

Published by yuval-hazaz over 3 years ago

  • New layout and navigation
  • New Dark mode
  • Various bug fixes