Banana-manager

Latest version: v0.6.1

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

0.3.1

Quick additions to enhance the logging functionality of the package.

Added

- The application now creates an `error.log` file in your data folder. You can specify the data folder directory in the `config.yaml`.
- The `update.log` also records the old cell value before updating.

0.3.0

Changed

- The `connection_string` argument in `config.yaml` has been replaced with a `connection` object. The new structure for the connection configuration is as follows:

yaml
Old config.yaml
connection_string: <string>

New config.yaml
connection:
drivername: <optional string>
username: <optional string>
password: <optional string>
host: <optional string>
port: <optional positive int>
database: <optional string>


Added

1. Environment Variables for Username and Password

You can now read the username and password from environment variables. Set `BANANA_USERNAME` and `BANANA_PASSWORD` as environment variables.

2. Logging for Changed Values

A `update.log` file will be created in your data folder. You can specify the data folder location in the `config.yaml` using the `data_path` key.

yaml
data_path: "data"


3. Add `order_by` and `limit` clauses to table configuration.

yaml
tables:
- limit: <optional positive int>
order_by:
- column: <string>
desc: <optional bool>


4. Add AG Grid options in the `config.yaml`.

yaml
grid_options:
pagination: True
paginationPageSize: 50
singleClickEdit: True


5. Add `editable`, `filter` and `sortable` to column definition.

yaml
columns:
- editable: <optional bool>
- filter: <optional bool>
- sortable: <optional bool>


6. Add `hide`, `filter` and `sortable` to primary key definition.

yaml
primary_key:
- hide: <optional bool>
- filter: <optional bool>
- sortable: <optional bool>


7. Add `order_by` to foreign key definition.

yaml
foreign_key:
order_by:
- column: <string>
desc: <optional bool>

0.2.1

Changed

- **Table Indexing:** The package now performs table indexing using a JSON file instead of a database table. This change was made in preparation for an upcoming “Read-Only Mode”.
- **config.yaml Attributes:** The attributes in the `config.yaml` file have been updated. The new configuration includes the following:

python
connection_string: <string>
data_path: "data"
table_paths: ["tables"]
title: "Banana Database Manager"


Fixed

- **Dependency Error:** The issue where Flask-SQLAlchemy was not installing has been resolved.
- **Side Menu Bug:** A bug causing the side menu not to load when an invalid table was selected has been fixed.


Documentation

- The `README.md` file now includes a “Getting Started” section, providing instructions on how to configure the package.

0.2.0

Added

- **Table groups and folder organization**

You can now organize your table configurations into different files within separate folders. These files will automatically turn into groups in the menu.

Note that this change introduces a breaking update: you need to modify your config file to include the optional attribute `table_paths`, which is now a list of folders containing YAML files (instead of a single YAML file directory).

- **Group label and divider in the side menu**

The group label and divider are generated based on your file organization.

- **New attribute `group_name` and `display_order` for the `BananaTables` object**

This will visually change the label and order of your groups in the side bar.

---

This is the current attributes and default values of the `tables` configuration:

yaml
group_name: <optional string>
display_order: <optional integer>
tables:
- name: <string>
schema_name: <optional string>
display_name: <optional string>
primary_key:
name: <string>
display_name: <optional string>
columns:
- name: <string>
display_name: <optional string>
foreign_key: (optional)
table_name: <string>
schema_name: <optional string>
column_name: <string>
column_display: <string>
- <other columns>

- <other tables>


---

- **Indexing Table**

Upon app refresh, a new table is created in your database to store configuration metadata. This allows the app to find relevant information faster than searching and reading files.

You can customize the indexing table name and schema using the `indexing_table` and `indexing_schema` attributes in your config file.

---

This is the current attributes and default values of the `config.yaml` file:

yaml
connection_string: <string>
port: 4000
table_paths: ["tables"]
title: "Banana Database Manager"
indexing_table: "banana__indexing"
indexing_schema: <optional string>


Changed

- `Flask-SQLAlchemy` has been added as a dependency, enhancing code safety and cleanliness.

0.1.3

Added

- Improved back-end error handling with new custom Exceptions:

python
>>> BananaError
>>> NoBananaTableSelected
>>> MultipleBananaTablesWithSameName
>>> NoBananaTableFound
>>> InvalidBananaForeignKey


These will also help future updates with front-end error feedback.

Fixed

- Addressed the overflow issue in the left menu by introducing a new scroll bar.
- AG Grid now dynamically fills the remaining screen space.

Changed

- The Flask `server` attribute is now exposed. You can execute the application using one of these methods:

python
>>> from banana import Banana
>>> app = Banana()

>>> Run dash server (default port: 8050)
>>> app.run_server()

>>> ...or run flask server (default port: 5000)
>>> app.server.run()


Additionally, consider running a production server with [waitress](https://flask.palletsprojects.com/en/2.3.x/deploying/waitress/):

python
>>> from banana import Banana
>>> from waitress import serve

>>> Waitress server (default port: 8080)
>>> serve(app.server)


Broken

- The `port` attribute from `config.yaml` is currently not functional. However, this issue will be resolved once the CLI solution is implemented. For now, you can set the port as an optional argument using the methods mentioned above.

0.1.2

Added
- An option has been introduced to change the HTML page title. You can achieve this by setting the optional `title` argument in the configuration file.

Changed
- The code has been updated to remove the usage of `typing.Self`. This change aims to reduce the required Python version for compatibility.

Fixed
- A bug related to joining tables with the same name has been resolved.
- Another bug involving setting more than one column with foreign keys has been fixed.
- Additionally, a bug where the text was not visible when the primary key column was not named `id` has been rectified.

Removed
- Development-related elements from the config have been removed.

Page 2 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.