arkemishub / arke Goto Github PK
View Code? Open in Web Editor NEWArke low code framework Core
Home Page: https://arkehub.com
License: Apache License 2.0
Arke low code framework Core
Home Page: https://arkehub.com
License: Apache License 2.0
in addition to context
and message
put code
in order to add a translation key while keeping some meaningful message as fallback or cli
We should check if the parent and the child exists in the given project or in arke_system before create the link. Else raise an exception
Describe the bug
Test coverage differs between local and actions due to an error raised by the GenServer.
{:noproc,
{GenServer, :call,
[
{:via, Registry, {:group_registry, {:group_test, :test_schema}}},
{:add_link, :arke_list, :test_arke_group, %{project: :test_schema}},
5000
]}}}
the last_login param in the arke user is never used. We should update it at every login, every refresh and maybe every verify
If nil is given to values while creating an Unit it will cause an Enum Error
Cannot give multiple values to an integer/float parameter.
Step to reproduce:
opts = [
id: :integer_test_values,
label: "Test integer",
values: [1, 2, 3, 4],
multiple: true
]
integer_test_values
= [1,2]The unit should be created because the values are within the opts. Instead it raise an error
Describe the bug
Since the limit of existing atoms is not that high, we should switch to the usage of strings instead of them.
If a filter is built with a float and the values does not have the decimal it throws an error. Instead it should work. Below an example of the filter.
----- DOES NOT work ----
filter=and(lte(integer_support,5),lte(float_support,15))
----- work -----
filter=and(lte(integer_support,5),lte(float_support,15.0))
Describe the bug
We want to have better mocking in order to have stronger tests.
What we can do is add a support
file which contains a map that simulates existing units, after that we should update persistence_fn.ex
following functions
def execute(query, :all), do: {:execute, :all}
def execute(query, :one), do: nil
def execute(query, :raw), do: {:execute, :raw}
def execute(query, :count), do: {:execute, :count}
def execute(query, :pseudo_query), do: {:execute, :pseudo_query}
When activate an arke then deactivate it lost default parameters: id, arke_id, metdata etc.
I want to be able to exclude an arke to be exposed via the default api. (ex: reset_password_token)
expose
false parameter__NAME
or private_NAME
Make a pattern matching function for add_node which accept the parent and the child as string and not only unit
create a parameter like strip
which, if set to true, transform all the string to lowercase
When i assign a parameter using the console it is not returned in the struct unless i restart the backend
if ArkePostgres.Query.get_value/2
return an error we should handle it with a tuple {:error, msg}. (It applies also for arke_server
which should return 400
create a transform
and a match
parameter which will get regex as value and match or transform the data using the given regex
By default when a number is passed as id
of an Unit
, a new uuid
is generated.
body
{
"id": 123,
"label": "test_2"
}
response
{
"content": {
"arke_id": "string",
"default_string": null,
"format": "attribute",
"helper_text": null,
"id": "73d14628-f96d-11ed-8a77-acde48001122",
"inserted_at": "2023-05-23T13:26:40Z",
"is_primary": false,
"label": "test_2",
"max_length": null,
"metadata": {},
"min_length": null,
"multiple": false,
"nullable": true,
"only_run_time": false,
"persistence": "arke_parameter",
"required": false,
"unique": false,
"updated_at": "2023-05-23T13:26:40Z",
"values": null
},
"messages": []
}
We agreed with @dorianmercatante that it should return an error in this cases.
check if datetime has seconds and convert them or try to find a way to add them and then convert the datetime.
(check also date and datetime)
That's because elixir has from_iso8601
methods but the frontend sometimes does not send the seconds.
Alternative: In the error message specify that we need the iso8601 format and send and error if it is not right
use the query manager to create a new project based on the user input
Create a parameter, maybe remove_trail
or no_whitespace
, to remove before the parameter creation the whitespaces
When using the querymanager.get_by and multiple values are returned the server return 500.
Maybe we should handle the multiple values and create a custom message
Add a compare function in the datetime handler similar to the below one:
NaiveDateTime.compare(otp_unit.data.expiry_datetime, NaiveDateTime.utc_now())
same for date
and time
and also one which match a :now
which provide to get the date/time/datetime now and compare it
prova_progetto
{{base_path}}/test_arke/unit
{{base_path}}/arke/unit/test_arke
active
status between true
and false
):{
"parameters": [],
"type": "arke",
"active": true,
"label": "Test Arke",
"updated_at": "2023-07-03T14:26:10.000000Z",
"inserted_at": "2023-07-03T14:26:10.000000Z",
"metadata": {
"project": "arke_system"
},
"arke_id": "arke",
"id": "test_arke"
}
i start the backend locally then i run the get endpoint and it returns 200 with 0 unit. Then i edit the same arke using the put and it also return 200, but if i run again the get it return 500 with the error message no function clause matching in ArkePostgres.Query.get_column/1
(nil is given to the get_column function)
below the arke in the query of the get:
%Arke.Core.Unit{
id: :test_arke,
data: %{
active: true,
label: "Test Arke",
parameters: [
%{
arke: :string,
id: :id,
metadata: [required: true, persistence: "table_column"]
},
%{
arke: :string,
id: :arke_id,
metadata: [required: false, persistence: "table_column"]
},
%{
arke: :dict,
id: :metadata,
metadata: [required: false, persistence: "table_column"]
},
%{
arke: :datetime,
id: :inserted_at,
metadata: [required: false, persistence: "table_column"]
},
%{
arke: :datetime,
id: :updated_at,
metadata: [required: false, persistence: "table_column"]
}
],
type: "arke"
},
arke_id: :arke,
link: nil,
metadata: %{:project => :prova_progetto, "project" => "arke_system"},
inserted_at: ~U[2023-07-03 14:26:10.000000Z],
updated_at: ~U[2023-07-03 14:26:10.000000Z],
__module__: Arke.System.Arke
}
%Arke.Core.Unit{
id: :test_arke,
data: %{
active: false,
arke_id: "arke",
label: "Test Arke",
parameters: [],
type: "arke"
},
arke_id: :arke,
link: nil,
metadata: %{:project => :prova_progetto, "project" => "arke_system"},
inserted_at: ~U[2023-07-03 14:26:10.000000Z],
updated_at: ~U[2023-07-03 14:26:10.000000Z],
__module__: nil
}
Create a delete/1
where the project is get from the UnitStruct metadata
Boolean parameter should accept only true
or false
as value but if i try to valorize a boolean with a string it works.
**Describe your idea
When a member create an arke, create automatically permissons metadata for that member.
Describe the bug
There are some references to deprecated configuration
.
get bucket key from the configuration
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.