Git Product home page Git Product logo

alpas's People

Contributors

armgitaar avatar ashokgelal avatar dependabot-preview[bot] avatar deye9 avatar racharya avatar schmeic avatar vanessagertman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alpas's Issues

Path to version 1.0

We have already used Alpas in a few production apps and as we were writing those apps, Alpas went through some significant improvements and stability. There is even a full tutorial app written in Alpas that goes to show you that you can already write a complete app in Alpas. However, we still have few things to address, resolve, and add before we can tag it as version 1.0.

There is no plan to make any significant API changes. As I said, we have already gone through refactoring and design changes while we were working on real apps. But still, consider the current state of Alpas to be unstable and having bugs—both major and minor. Feel free to experiment by writing apps and let us know if you run into any issues.

Here are some non-exhaustive list of things, in no particular order, that I want to get done before 1.0 release.

  • Add support for Web sockets.
  • Improve database support for vendors other than MySQL.
  • Improve Windows support with GitBash and WSL.
  • Add Windows support without GitBash or WSL.
  • Add more tests. My goal is to have at least a 90% test coverage.
  • Improve testing both in terms of features and performance.
  • Handle multi-part form input.
  • Add KDoc comments and make it available for online browsing.
  • Add more validation rules.
  • Finish documenting the core as well as secondary packages like Pulsar.
  • Add more examples to Ozone documentation.
  • Add resource routes.
  • Allow middleware sorting.
  • Allow multiple static assets location. #8
  • Find a way to reload static assets without re-compiling during development.
  • Support localization.
  • Add database notifications.
  • Significantly improve the performance of the queue worker and preferably rewrite it using co-routines.
  • Add Code of Conduct.
  • Add asynchronous support.
  • Improve installation and setup process.
  • MySQL 8.0 connection issue. #7
  • Make routing more strongly typed
  • Allow to seed a database easily
  • Allow to create an entity instances using a factory
  • Allow to hook into a call lifecycle
  • Allow template hot reloading
  • Enable regex in the routing
  • Add more convention based APIs to Ozone
  • Add server side events
  • Add support for eager loading

If you’d like to take an initiative on implementing any of the big features listed above, please get in touch by reaching out to us on our official Slack. We will offer any help you need to get it started and get it done.

Thank you!

Add Build failed error details messaging

When app fails to build when building via terminal (./alpas build) I receive a message that app failed to build. However, there is no additional information to work off of. The app does build and service successfully via IntelliJ.

Note - I was able to resolve issue eventually by using the 'yarn dev' command and then './alpas build' - this led to a successful build - in case this helps to narrow down a root cause of the build issue I was having.

Restart server on build changes

I have setup a project using alpas init myapp.web.

I have then successfully started the server using alpas serve (also tried alpas watch).

I then change the default WelcomeController but changes are not picked up even with a separate gradle build --continuous (which does pick up changes and recompile).

Let me know if you need further info.

What I would expect is the server to restart when new changes are detected in build, ideally to not restart unnecessarily when, for example, asset changes are detected.

Ability to see version number via command line

To see what Alpas version number I am currently on, I need to refer to the build gradle file. Would be awesome if I can run a ./alpas version or something similar to quickly see what version of Alpas my app is running on.

HTTP ERROR 500 - mix-manifest.json does not exist

I get this error when loading and running a project I cloned from repo the first time -

HTTP ERROR 500 javax.servlet.ServletException: java.lang.Exception: Mix manifestMap file /Users/adammiedema/thatappshow/storage/src/main/resources/web/mix-manifest.json doesn’t exist

running ./alpas link:web resolves the issue

Creating a new AuthChannel

I am migrating an existing AWS Lambda function to Alpas and I have a question about how I should implement my AuthChannel (since I won't be using Sessions).

I have this part working so far:

  1. The client making the request sends an encrypted auth token (encrypted with a public key) in the auth header of the request.
  2. The AuthChannel decrypts the auth token using a private key stored on the server (if the token can't be decrypted, I am returning false for check())
  3. Then, the AuthChannel parses some data out of the token. One of the pieces of data in the auth token is an API key so I check that and if it doesn't match whats in my env I return false for check(). Also, if the format doesn't match what I expected, I return false for check())

The auth token has information that I want the ability to access later on when I am actually handling the request. I don't want to have to decrypt the auth token again in my controllers because it is expensive. I would like to just be able to access this data after parsing it in the AuthChannel.

Right now, the information I need is a userId and one other id. This almost sounds like a case for creating a new UserProvider but I am not quite sure if that makes sense or not. I don't actually know anything about the users in this application other than a unique id.

Based on that description, should I be making a UserProvider to save that information or is that weird?
Is there a better place in the call for me to save this information?

State of the project

As I didn't get any answer within the "Discussions", I will ask here:

What is the state of this project? Is this project dead? Do you need help?

I really like the idea of an "batteries included" Kotlin framework. So whats the plan for the future? Is this a hobby project? Do you keep going?

Add make database command if connected to MySQL server

It's be handy that if I connect my project to MySQL server, that I can create a db via a command - such as currently the database has to exist otherwise I get an error when running. Would be great to get validation that database does not exist with hint on how to create database using command

Add graceful error handling fo duplicative Link:web and Link:template actions

I receive the below error when running link:web and link:template. However, I have already run those commands previously; so, would like to see a message letting me know command has already been carried out and is all good to go.

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ‘:run’.
> Process ‘command ‘/Users/adammiedema/.sdkman/candidates/java/9.0.7-zulu/bin/java’' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Add replyasjson list

fun<T:List<*>> HttpCall.replyAsJson(payload:T, statusCode:Int = HttpStatus.OK_200) : ResponsableCall {
    response = JsonResponse(payload, statusCode)
    return this
}

Error connecting with a MySQL 8.0 server instance on Windows

Alpas out-of-the-box MySQL connection config cannot connect to a MySQL 8.0 instance esp. on Windows (haven't tested this on other platforms). It throws an exception with the following message.

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

The solution is to set allowPublicKeyRetrieval=true in the JDBC connection URL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.