Code Monkey home page Code Monkey logo

datahub's People

Contributors

christian-thiele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

datahub's Issues

ServiceHost should not rethrow on failWithServices

Rethrow results in exception being printed twice, once by logservice, once not. Also, servicehost is not able to shutdown services in this case.

Instead: show exception through logservice, shutdown gracefully and end application with error code.

fix config list parsing

lists are typed with YamlList which does not match List when querying config values.
not convenient

CodeGen: Handle named imports on transfer types

import 'some_dto.dart' as some;

@TransferObject()
class MyDto extends _TransferObject {
    final some.SomeDto child;

    MyDto(this.child);
}

Generated code does not use named type which results in compile time error.

SQL value namespaces

// TODO while we escape values, we don't need to worry about substitution values // TODO but that's probably not the best way, lets think of some sort of system that // TODO let's us use substitutions without clashing names // @CTH by CTH: maybe provide a "namespace" to methods like this to avoid // clashing names?

See sql_builder.dart

Config File loading

Current config design pattern is not suitable for config files most commonly used in cloud native environments

Use own amqp fork

Officially host dart_amqp fork for datahub and use it in datahub.
Features include:

  • Named connections
  • AutoDelete Exchanges (deprecated in amqp, but still needed in some cases for rabbitmq)

BrokerAPI Generator: use Interface info

  • Use extended interface for parameter names (BrokerApi and BrokerInterface could possibly define different param names which leads to serialization errors)
  • Use queueName and durable from BrokerInterface to avoid collision

PropertyCompareType In

Add PropertyCompareType.In that checks if field value is in list.

SQL: field in ( , , , )

Export amqp in broker.dart

It can be confusing that generated code (BrokerApi) has a "hidden" dependency on amqp lib.
This should be exported by broker.dart to avoid multiple necessary imports

Constraint TData to TransferBeanBase<TID>

Check if it would be benefitial to constraint the TData type on HubResource types to the specific TransferObjectBase.

Pro:

  • cannot mess up id-types and produce run time errors
  • ...
    Contra:
  • TData would be limited to TransferObjectBase
  • ...

JWT support

"native" JWT parse / verify / issue utilities

Persistence transactions

Database transaction support.
Method call on connection with delegate.
If delegate throws, rollback. Maybe also add cancellation token or something?
Maybe no need to throw, can be call on callback but lets see

Log level config

desired log level can not yet be configured (everything is printed by LogService)

Request body data streams

Request body data should be streamed so that large files can be rejected by header data or size or whatever inside the request handler!

Generated code linter

Use TransferObjectBase instead of TransferObjectBase
Use
void getId() {}

instead of
Null getId() => null;

insert
// ignore_for_file: constant_identifier_names
into dto.g.dart files

Logging interface

Logging is currently done using print statements across the code.
Ugly af

Migration rollback

Migrations should use transactions to not leave database in irrecoverable state after migration failed somewhere

test: check compose file

in datahub test cli command check if docker-compose file exists, if not treat like --no-compose

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.